如何连接Socket.io?斯威夫特4

问题描述 投票:0回答:2

我已经阅读了Swift的Socket.io的latest documentation。还有一个新连接的例子:

let manager = SocketManager(socketURL: URL(string: "http://localhost:8080")!, config: [.log(true), .compress])
let socket = manager.defaultSocket

所以我创建了一个类SocketIOManager,如下所示:

class SocketIOManager: NSObject {

    static let manager = SocketManager(socketURL: URL(string: "myurl.com:443"))
    static let socket = manager.defaultSocket

    class func connectSocket(){
        socket.connect()
    }

    class func reciveMessage(){    
            socket.on("new-message-mob") { (dataArray, ack) in
                print(dataArray.count)
            }
    }
}

然后我只在我的ViewController中调用方法SocketIOManager.connectSocket()。但服务器产生错误。我没有开发服务器端。我只需要知道 - 我是否正确创建连接?这些天你如何通过Socket.io连接到socket?

P.S服务器错误 - 必须提供jwt(似乎没有令牌,但有)。

更新(带虚拟值):

我正在传递这样的标记:

static let manager = SocketManager(socketURL: URL(string: "https://myurl:443?token=\(token)")!)
static let socket = manager.defaultSocket
ios swift socket.io
2个回答
2
投票

看起来你把qazxsw poi放错了地方。根据qazxsw poi,qazxsw poi应该在配置中设置为header参数:

token

尝试以这种方式管理你的issue


3
投票

因此,要解决此问题,我们必须采取以下措施:

  1. 为manager.config添加.connectParams([“token”:token]) - 在我的情况下,我必须使用“token”键作为URL参数。
  2. 为manager.config添加.secure(true)参数。
  3. 在info.plist(字典类型)和子键“允许任意加载”(布尔类型)中添加“应用程序传输安全设置”键,其值为YES。

码:

token
© www.soinside.com 2019 - 2024. All rights reserved.