socket.io官方客户端连接问题?
socket.io official client connection issues?
我正在与 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: \([=11=].event) with items \([=11=].items)")}
socket.on("connect") {data, ack in
println("socket connected")
}
socket.on("error") {data in
println("socket ERROR")
println(data)
}
谁能证实这一点?这是版本问题还是与 Swift 1.2 有关?
在服务器端,我什至无法识别连接尝试。变量 serverURL 与我之前的相同
您应该将 SocketIOClient 实例用作 class 属性。
class aClass {
let socket = SocketIOClient(socketURL: url)
func someFunction() {
socket.on("connect") {data, ack in
println("socket connected")
}
}
}
我觉得是因为里面用了很多闭包。
确保在调用处理程序后调用 socket.connect()
。一个好的做法是创建一个包含所有所需处理程序的函数,并在 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: \([=10=].event), with items: \([=10=].items)")}
self.socket.on("processReq") {[weak self] data, ack in
// handler code here
}
}
我正在与 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: \([=11=].event) with items \([=11=].items)")}
socket.on("connect") {data, ack in
println("socket connected")
}
socket.on("error") {data in
println("socket ERROR")
println(data)
}
谁能证实这一点?这是版本问题还是与 Swift 1.2 有关?
在服务器端,我什至无法识别连接尝试。变量 serverURL 与我之前的相同
您应该将 SocketIOClient 实例用作 class 属性。
class aClass {
let socket = SocketIOClient(socketURL: url)
func someFunction() {
socket.on("connect") {data, ack in
println("socket connected")
}
}
}
我觉得是因为里面用了很多闭包。
确保在调用处理程序后调用 socket.connect()
。一个好的做法是创建一个包含所有所需处理程序的函数,并在 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: \([=10=].event), with items: \([=10=].items)")}
self.socket.on("processReq") {[weak self] data, ack in
// handler code here
}
}