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.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使用它。