[英]Swift socket.io .emit() doesn't fire
I'm new to sockets and i'm stuck with the following problem, i use this library to connect my app to my nodejs server. 我是套接字的新手,但遇到以下问题,我使用此库将我的应用程序连接到我的nodejs服务器。 I'd like to know why if i call socket.emit() in the following way doesn't work:
我想知道为什么我不能通过以下方式调用socket.emit():
override func viewDidLoad() {
var socket: SocketIOClient = SocketIOClient(socketURL: NSURL(string: "myhosturl")!)
socket.emit("ping","some data");
socket.connect();
}
It doesn't work neither swiping socket.emit and socket.connect functions but if I trigger the socket.emit function by clicking a button it works: 滑动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");
}
I think i'm missing something here, it would be great is someone could explain this to me 我想我在这里想念一些东西,如果有人可以向我解释一下,那就太好了
Sockets require a connection before emit is called. 套接字在发出调用之前需要连接。 You should probably wait until there is a connection before u emit.
您可能应该等到建立连接后再发射。 Try this:
尝试这个:
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()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.