socket.io正式客户端连接问题?

我正在使用iOS 8和Swift。 我想使用官方socket.io客户端,但由于某种原因,它不会尝试连接。 我遵循这里给出的例子: https : //github.com/socketio/socket.io-client-swift

let socket = SocketIOClient(socketURL: "\(CurrentConfiguration.serverURL)") socket.reconnects = true socket.reconnectWait = 10 socket.nsp = "/messagelist" // Connect socket.connect() socket.onAny {println("got event: \($0.event) with items \($0.items)")} socket.on("connect") {data, ack in println("socket connected") } socket.on("error") {data in println("socket ERROR") println(data) } 

任何人都可以确认吗? 这是一个版本问题,或者可能涉及到Swift 1.2?

在服务器端,我甚至不能识别连接尝试。 variablesserverURL和我以前一样

       

网上收集的解决方案 "socket.io正式客户端连接问题?"

确保在调用处理程序后调用socket.connect() 。 一个好的做法是创build一个包含所有你需要的处理函数的函数,然后在viewDidLoad方法中调用它。 之后你会调用connect方法。

例:

 let socket = SocketIOClient(socketURL: "URL") override func viewDidLoad() { super.viewDidLoad() // socket.io addHandlers() socket.connect() } func addHandlers() { self.socket.onAny {println("Got event: \($0.event), with items: \($0.items)")} self.socket.on("processReq") {[weak self] data, ack in // handler code here } } 

您应该使用SocketIOClient实例作为类属性。

 class aClass { let socket = SocketIOClient(socketURL: url) func someFunction() { socket.on("connect") {data, ack in println("socket connected") } } } 

我想这是因为有很多closures使用它。