Socket.io swift客户端自动断开连接

时间:2018-01-02 13:12:14

标签: ios swift multithreading socket.io

我在我的应用程序中使用socket.io swift客户端(版本13.1.0)工作正常,但有时会出现这种情况: 套接字断开连接(10次中有3次)。断开连接后,它会尝试并成功连接,但在此之后它再次断开连接,这就形成了一个无限循环的连接 - 断开状态。我被搜查但没有得到任何可能的解决方案。 我的代码非常简单。我创建了一个单例类,其代码如下:

class SocketIOManager: NSObject {


    static let sharedInstance = SocketIOManager()
    let manager = SocketManager(socketURL: URL(string: "URL")!, config: [.compress, .log(true), .reconnects(false)])

    override init() {
       super.init()
       let socket = manager.defaultSocket

        socket.on("connect") {data, ack in
           NSLog("*************** SOCKET CONNECTED")
        }
    }

    func establishConnection() {
       let socket = manager.defaultSocket
       socket.connect()
    }
}

除此之外,当应用程序进入后台时,我优雅地断开套接字,然后当应用程序进入前台时再次连接它。

我尝试过的事情:

  • 尝试配置参数:forceNew(true / false),重新连接(true / false),forceWebsockets(true / false)
  • 为了保持连接处于活动状态,我每隔10秒向服务器发送一个空参数,以便它知道应用程序处于活动状态。

我的观察: 我在同一个项目中使用Alamofire,它在后台线程中发送请求。可能在某些时候,两个lib都开始使用相同的后台线程和套接字连接中断。

这可能吗?如果我理解错了,请纠正我。 我该怎么做才能克服这个插座断开问题。我是iOS的新手,所以任何帮助将不胜感激。

0 个答案:

没有答案