我正在尝试使用链接ws://link.net:8888 / ws?token =创建与Web套接字的连接,以打开与服务器的通信。
我发现我可以使用Stream,但我不知道如何将access_token添加到最后。
Stream.getStreamsToHost(withName: host, port: port, inputStream: &inputStream, outputStream: &outputStream)
if inputStream != nil && outputStream != nil {
// Set delegate
inputStream!.delegate = self
outputStream!.delegate = self
// Schedule
inputStream!.schedule(in: .main, forMode: RunLoopMode.defaultRunLoopMode)
outputStream!.schedule(in: .main, forMode: RunLoopMode.defaultRunLoopMode)
print("Start open()")
// Open!
inputStream!.open()
outputStream!.open()
}
由于某些原因,即使我尝试连接到没有访问密钥的链接,我也不成功。那么有没有人有办法如何打开连接到添加了access_key的套接字我会非常感激?
我也尝试了https://github.com/swiftsocket/SwiftSocket,但它也没有选项可以添加任何内容,我现在唯一能尝试的是https://github.com/socketio/socket.io-client-swift。
EDIT1: 所以在Dan Karbayev的评论之后我用代码
检查了红蜘蛛let url = "ws://link.net:5000/ws?token=token"
let socket = WebSocket(url: URL(string: url)!)
socket.onConnect = {
print("websocket is connected")
}
//websocketDidDisconnect
socket.onDisconnect = { (error: Error?) in
print("websocket is disconnected: \
(error?.localizedDescription)")
}
//websocketDidReceiveMessage
socket.onText = { (text: String) in
print("got some text: \(text)")
}
//websocketDidReceiveData
socket.onData = { (data: Data) in
print("got some data: \(data.count)")
}
//you could do onPong as well.
socket.connect()
但由于一些奇怪的原因,套接字方法都没有唤醒。
编辑2:
最后我使用https://github.com/tidwall/SwiftWebSocket结束了。 它立即起作用。
但感谢所有人的帮助。