【问题标题】:(SocketIO.Swift) .connect call back is called but not connected to server(SocketIO.Swift) .connect 回调被调用但未连接到服务器
【发布时间】:2017-07-12 12:56:39
【问题描述】:

我正在尝试使用 SocketIO 快速连接到服务器。当我尝试连接时,我从 .connect 事件中得到回调,但从服务器端我没有受到任何打击。我是否必须为此添加一些权限?我已经在 plist 中添加了 App Transport Security(允许任意加载为真)设置。下面是我的快速代码

            let config = URLSessionConfiguration.default
            let cookies = config.httpCookieStorage?.cookies

            print(cookies)

            self.socket = SocketIOClient.init(socketURL: URL.init(string: <server url>)!, config: [.log(true),.cookies(cookies!)])


            self.socket?.on(clientEvent: .connect, callback: {

                data,ack in

                print(data,ack)
                self.socket?.emit("adduser", <sessionData>)
                print("status: \(self.socket?.status.rawValue)" )
            })

            self.socket?.on(clientEvent: .error, callback: {

                data,ack in

                print(data,ack)

            })

            self.socket?.on("livelocation", callback: {

                data,ack in

                print(data,ack)
            })

            self.socket?.connect()

当我尝试连接、使用发射和尝试监听事件时,没有服务器日志。

【问题讨论】:

  • 您的套接字 io 服务器是否需要任何身份验证,例如令牌?如果需要,请添加.connectParams。您的服务器证书是否自签名,如果是,请添加 .selfSigned 检查 github 页面以获取更多配置选项。
  • 我的服务器只需要 cookie。即使没有发送cookie并且我们尝试连接日志消息也应该打印。

标签: ios swift socket.io


【解决方案1】:

我终于能够找出问题所在。问题是命名空间。在服务器中,他们使用的是命名空间。因此,我不得不使用 .nsp("\namespacename") 选项,而不是将整个内容作为 url 发送。然后它工作正常。

【讨论】:

    猜你喜欢
    • 2020-06-16
    • 2023-03-09
    • 2016-05-19
    • 2014-04-13
    • 1970-01-01
    • 2013-12-14
    • 2014-05-26
    • 2016-06-06
    • 2018-03-21
    相关资源
    最近更新 更多