我最近更新了一段时间前我正在为最新版本的Socket.IO工作的项目。它在早期版本中运行良好,但我现在遇到的问题是客户端在重新启动服务器后没有重新连接。
我最初使用类似于此的设置,我希望保留:
https://www.appcoda.com/socket-io-chat-app/
使用下面的“新配置”代码,应用程序在启动时成功连接到服务器,但在重新启动服务器时不会重新连接。发生这种情况时,on.disconnect
不会被调用,socket.status
会显示.connecting
状态,但永远无法解决。
当我添加新的套接字文件时,我实际创建了一个全新的项目,旧的项目仍然可以正常工作,而新项目则没有。
我添加了我认为应该有效的配置选项。还有其他想法吗?
新配置:
let manager = SocketManager(socketURL: URL(string: socketURL)!, config: [.reconnects(true), .forceNew(true)])
class SocketIOManager {
static let sharedInstance = SocketIOManager()
var socket: SocketIOClient = manager.defaultSocket
init() {
socket.on("connect") {data, ack in
print("connected")
}
socket.on("disconnect") {data, ack in
print("disconnected")
}
}
}
旧配置:
class SocketIOManager {
static let sharedInstance = SocketIOManager()
var socket: SocketIOClient = SocketIOClient(socketURL: socketURL)!)
init() {
socket.on("connect") {data, ack in
print("connected")
}
socket.on("disconnect") {data, ack in
print("disconnected")
}
}
}