我试图连接到特定的频道,以便我只能监听发送到该频道的事件。我在服务器端使用过Laravel Echo。
最后,在此问题上花了一些时间后,我得到了解决方案。这是解决方案
private let manager = SocketManager(socketURL: URL(string: "http://testserver.com:6001")!, config: [.log(true), .compress, .reconnects(true), .reconnectAttempts(-1), .forceWebsockets(true), .forcePolling(true)])
private var socket: SocketIOClient!
private var nameSpace = "App\\Events\\"
func connect() {
socket = manager.defaultSocket
socket.connect()
socket.on(clientEvent: .connect) {data, ack in
let channelData = ["channel": "test-channel"]
self.socket.emit("subscribe", channelData) {
print("Sockets: test-channel subscribed")
socket.on("\(nameSpace)newMessage") { (data, ack) in
print("Sockets: newMessage event called")
}
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句