我必须使用 iOS 客户端收听和加入 Laravel Echo 频道。 Echo 通道正在从套接字 IO 服务器广播事件。 我安装了 SocketIO pod 并且我设法监听了一些事件,但是它们在“连接时”之后由套接字服务器发送(这意味着它们不是由 Laravel Echo 通道触发) 这是我制作的助手类:
import UIKit
import SocketIO
class SocketProvider
{
private init()
{
socket = manager.defaultSocket
}
static var shared = SocketProvider()
let manager = SocketManager(socketURL: URL(string: "http://192.168.0.14:3950")!, config: [.log(true), .compress, .reconnects(true), .reconnectAttempts(-1), .forceWebsockets(true), .forcePolling(true)])
var socket: SocketIO.SocketIOClient
func monitorIncomingEvents()
{
socket = manager.defaultSocket
socket = manager.socket(forNamespace: "/")
socket.joinNamespace()
socket.connect()
socket.on(clientEvent: .connect) { (data, ack) in
print("socket connected ? and session ID is equal: ", self.socket.sid)
self.socket.on("event_without_channel") { (data, ack) in
print("This one works perfectly")
}
}
self.socket.on("channel_name") { (data, ack) in
print("Nopee ..")
}
self.socket.on("event_inside_channel_name") { (data, ack) in
print("Nopee..")
}
}
}