如何使用 SocketIO 订阅套接字通道? [关闭]
Posted
技术标签:
【中文标题】如何使用 SocketIO 订阅套接字通道? [关闭]【英文标题】:How to subscribe a socket channel using SocketIO? [closed] 【发布时间】:2021-03-25 23:34:06 【问题描述】:我正在尝试连接到特定频道,以便我只能收听发送到该频道的事件。我在服务器端使用了 Laravel Echo。
【问题讨论】:
【参考方案1】:在这个问题上花了一些时间后,我终于找到了解决方案。这是解决方案
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")
【讨论】:
请同时添加相关第三方代码的链接(SocketManager
和SocketIOClient
)
@AwaisFayyaz 链接已添加到 Socket.IO-Client-Swift 的 GitHub 存储库中【参考方案2】:
我会研究 URLSessionWebSocketTask.. 他们设置 API 的方式有点奇怪,但它是标准库中的唯一选项。我在下面添加了一个链接以开始使用..
https://medium.com/better-programming/websockets-in-ios-13-using-swift-and-xcode-11-18fa3000d802
对于频道订阅,您很可能需要通过套接字发送消息并在后端保存对该频道的引用。这就是前端代码的样子..
https://github.com/BJBeecher/Networking/blob/master/Sources/Networking/WebSockets/WebSocket.swift
【讨论】:
以上是关于如何使用 SocketIO 订阅套接字通道? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在sails.js 中的SocketIO 握手期间修复“此套接字没有可用的有效会话”?
如何使用 Ctrl+C 结束 Flask SocketIO,错误 403(禁止)