如何在多个视图控制器上使用套接字? swift-socket.io

How do I use a socket on multiple viewcontrollers? swift-socket.io

我想创建 1 个连接并在多个视图控制器上使用它而不创建新连接

这是我的连接代码:

let manager = SocketManager(socketURL: URL(string: "https://mr-fast.liara.run")!, config: [.log(true), .compress])
var socket : SocketIOClient!
socket = manager.defaultSocket
socket.connect()

您可以为此使用单例模式

class SocketHandler {
    private init(){}
    static let shared = SocketHandler()

    private let manager = SocketManager(socketURL: URL(string: "https://mr-fast.liara.run")!, config: [.log(true), .compress])
    private(set) lazy var socket = manager.defaultSocket
}

现在您可以从任何地方访问它,例如:

SocketHandler.shared.socket.connect()

请注意,这只是一个示例,您可能希望使用不同的名称或使用初始化程序为变量赋值。