Swift socket.io .emit()不会触发
我是套接字的新手,我遇到了以下问题,我使用这个库将我的应用程序连接到我的nodejs服务器。 我想知道为什么如果我以下面的方式调用socket.emit()不起作用:
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() }
- 如何从UIButton操作方法获取UITableViewCell对象?
- iOS制作通用库 – 适用于i386和arm7
- 在Swift for iOS中沿着圆形path绘制文本
- NSInvalidArgumentException原因:“Storyboard不包含带有标识符”CenterViewController“的视图控制器
- iOS:初始化应用程序开始处的对象,供所有控制器使用
- Swift 2,使用Objective-C选择器’setOn:’的方法’setOn’与使用相同Objective-C选择器的’on’的setter冲突
- iOS谷歌login查看丢失的导航栏和底部栏
- iOSclosures和呈现视图控制器自定义animation
- UICollectionView:如何轻松处理更新