WebSocket 类提供了创建和管理 WebSocket 连接的接口,允许与服务器进行实时通信。你可以通过 WebSocket 连接发送和接收文本和二进制数据,包括字节缓冲区。
WebSocket 是一种通信协议,允许客户端与服务器之间进行全双工通信。这使其非常适用于实时应用程序,如即时消息、通知或数据流。
WebSocketnew WebSocket(url: string)创建一个新的 WebSocket 连接到指定的 URL,并立即尝试建立连接。
参数:
url: string:要连接的 WebSocket 服务器 URL。示例:"ws://example.com/socket" 或 "wss://example.com/socket"(对于安全的 WebSocket 连接)。返回:一个表示连接的 WebSocket 对象。
url: string
WebSocket 连接的 URL。此属性为只读。
onopen?: () => void
可选的回调函数,当 WebSocket 连接成功建立时触发。
onerror?: (error: Error) => void
可选的回调函数,当 WebSocket 连接或通信发生错误时触发。
onmessage?: (message: string | Data) => void
可选的回调函数,当从 WebSocket 服务器接收到消息时触发。message 参数可以是字符串或二进制数据(由 Data 类表示)。
onclose?: (reason?: string) => void
可选的回调函数,当 WebSocket 连接关闭时触发。reason 参数提供了关闭连接的可选解释。
send(message: string | Data): void通过 WebSocket 连接向服务器发送数据。
参数:
message: string | Data:要发送到服务器的数据。可以是字符串或 Data 类的实例。返回:void
close(code?: 1000 | 1001 | 1002 | 1003, reason?: string): void关闭 WebSocket 连接。如果连接已经关闭,则此方法不执行任何操作。
参数:
code?: 1000 | 1001 | 1002 | 1003:可选的 WebSocket 连接关闭代码。常见的代码包括:
1000:正常关闭1001:离开1002:协议错误1003:不支持的数据类型reason?: string:可选的关闭连接原因。此字符串的长度不得超过 123 字节(UTF-8 编码)。返回:void
你可以使用 addEventListener 来监听 WebSocket 事件,并使用 removeEventListener 来移除事件监听器。
addEventListener(event: "open", listener: () => void): void为 "open" 事件添加事件监听器,该事件在 WebSocket 连接建立时触发。
addEventListener(event: "error", listener: (error: Error) => void): void为 "error" 事件添加事件监听器,该事件在 WebSocket 连接发生错误时触发。
addEventListener(event: "message", listener: (message: string | Data) => void): void为 "message" 事件添加事件监听器,该事件在从 WebSocket 服务器接收到消息时触发。
addEventListener(event: "close", listener: (reason?: string) => void): void为 "close" 事件添加事件监听器,该事件在 WebSocket 连接关闭时触发。
removeEventListener(event: "open", listener: () => void): void移除 "open" 事件的事件监听器。
removeEventListener(event: "error", listener: (error: Error) => void): void移除 "error" 事件的事件监听器。
removeEventListener(event: "message", listener: (message: string | Data) => void): void移除 "message" 事件的事件监听器。
removeEventListener(event: "close", listener: (reason?: string) => void): void移除 "close" 事件的事件监听器。
Data 发送二进制数据send() 方法可以处理文本和二进制数据。对于二进制数据,你可以使用 Data 类来处理字节缓冲区。ArrayBuffer 或 Uint8Array。close() 方法可以接受 code 和可选的 reason 参数来指定 WebSocket 连接如何关闭。