Socket.IO
API 提供强大的工具,用于管理客户端与服务器之间的实时双向通信。它包括 SocketManager
(用于管理多个命名空间)和 SocketIOClient
(用于单个 socket 连接)。以下是该 API 的详细使用指南,包括设置、配置和常见用例。
通过 SocketManager
创建和管理 WebSocket 连接。每个 SocketManager
可以管理多个命名空间和配置。
SocketManager
constructor(url: string, config?: SocketManagerConfig)
url
:Socket.IO 服务器的 URL。config
:可选的配置对象。socketURL: string
:服务器 URL。status: SocketIOStatus
:连接状态(如 connected
、connecting
、disconnected
等)。defaultSocket: SocketIOClient
:默认命名空间("/"
)的 socket。socket(namespace: string): SocketIOClient
返回指定命名空间的 SocketIOClient
。
setConfigs(config: SocketManagerConfig): void
更新管理器配置。
disconnect(): void
断开所有由此实例管理的 socket 连接。
reconnect(): void
尝试重新连接服务器。
SocketIOClient
id: string | null
:socket 连接的唯一标识符。status: SocketIOStatus
:客户端连接状态(如 connected
、connecting
等)。connect(): void
发起连接。
disconnect(): void
断开连接。
emit(event: string, data: any): void
向服务器发送带有数据的事件。
on(event: string, callback: (data: any[], ack: (value?: any) => void) => void): void
注册事件监听器。
通过 SocketManagerConfig
对象自定义连接行为。
compress
:启用 WebSocket 传输的压缩。connectParams
:连接 URL 中包含的 GET 参数。cookies
:在初始连接中发送的 cookies。forceNew
:确保每次连接都创建一个新的引擎实例。reconnects
:启用自动重连。reconnectAttempts
:最大重连次数。reconnectWait
:重连尝试之间的最小时间(秒)。disconnect()
。on("error")
监听器以优雅地处理连接问题。secure: true
。