Ios Swift socket.io.emit()不';t火
我是sockets新手,我遇到了以下问题,我使用library将我的应用程序连接到我的nodejs服务器。 我想知道为什么以以下方式调用socket.emit()不起作用:Ios Swift socket.io.emit()不';t火,ios,swift,sockets,Ios,Swift,Sockets,我是sockets新手,我遇到了以下问题,我使用library将我的应用程序连接到我的nodejs服务器。 我想知道为什么以以下方式调用socket.emit()不起作用: override func viewDidLoad() { var socket: SocketIOClient = SocketIOClient(socketURL: NSURL(string: "myhosturl")!) socket.emit("ping","some data"); soc
override func viewDidLoad() {
var socket: SocketIOClient = SocketIOClient(socketURL: NSURL(string: "myhosturl")!)
socket.emit("ping","some data");
socket.connect();
}
滑动socket.emit和socket.connect函数都不起作用,但如果我通过单击按钮触发socket.emit函数,它会起作用:
override func viewDidLoad() {
var socket: SocketIOClient = SocketIOClient(socketURL: NSURL(string: "myhosturl")!)
socket.connect();
}
@IBAction func sendMessage(sender: AnyObject) {
socket.emit("ping","some data");
}
我想我这里遗漏了一些东西,如果有人能向我解释一下,那就太好了。在调用emit之前,套接字需要连接。您可能应该等到有连接后再发射。试试这个:
override func viewDidLoad() {
let socket = SocketIOClient(socketURL: NSURL(string: "myhosturl")!)
socket.on("connect") { _, _ in
print("socket connected")
socket.emit("ping", "data")
}
socket.on("ping") { _, _ in
print("ping received")
}
socket.connect()
}
我对这个库或您的实现不太了解,但要求套接字在其连接之前发出似乎不起作用,这就是为什么它在第二个示例中可以正常工作,但在第一个示例中却不能正常工作的原因。