如何使用 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")
            
        
    

【讨论】:

请同时添加相关第三方代码的链接(SocketManagerSocketIOClient @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 订阅套接字通道? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

ios如何在iOS中实现SocketIO

如何在sails.js 中的SocketIO 握手期间修复“此套接字没有可用的有效会话”?

如何使用 Ctrl+C 结束 Flask SocketIO,错误 403(禁止)

Socket.io 与 flask-socketio python。如何设置套接字保持活动/超时

登录后如何连接到套接字 - JWT

如何访问使用 websockets 发送的烧瓶中的 formData?Flask-SocketIO