Class: WrapperWebSocket
core/useWebSocket.WrapperWebSocket
包装器类。
Constructors
constructor
• new WrapperWebSocket(url
, config
, observer
)
Parameters
Name | Type |
---|---|
url | string |
config | RequiredWebSocketOption |
observer | WrapperObserver |
Properties
#autoReconnect
• Private
Readonly
#autoReconnect: Object
Type declaration
Name | Type | Description |
---|---|---|
delay | number | 重连间隔毫秒数。 |
enable | boolean | 是否启用。 |
retries | number | 最大重连次数。 |
#heartbeat
• Private
Readonly
#heartbeat: Object
Type declaration
Name | Type | Description |
---|---|---|
enable | boolean | 是否启用。 |
interval | number | 心跳间隔毫秒数。 |
message | string | ArrayBuffer | Blob | 心跳间隔消息。 |
#heartbeatTimer
• Private
#heartbeatTimer: undefined
| Timer
#observer
• Private
Readonly
#observer: WrapperObserver
#protocols
• Private
Readonly
#protocols: string
| string
[]
#queryUrl
• Private
Readonly
#queryUrl: string
#reconnectCount
• Private
#reconnectCount: number
= 0
#ws
• Private
#ws: WebSocket
Accessors
self
• get
self(): WebSocket
WebSocket
实例。
Returns
WebSocket
Methods
#heartbeatClose
▸ Private
#heartbeatClose(): void
关闭Socket
心跳定时器。
Returns
void
#heartbeatOpen
▸ Private
#heartbeatOpen(): void
开启Socket
心跳定时器。
Returns
void
#initObserverInterceptors
▸ Private
#initObserverInterceptors(interceptors?
): void
初始化interceptors
,订阅特定事件,处理边界情况。
Parameters
Name | Type |
---|---|
interceptors | WebSocketInterceptor |
Returns
void
#webSocketInterceptorsHandle
▸ Private
#webSocketInterceptorsHandle(): void
挂载interceptors
,发布特定事件,处理边界情况。
Returns
void
close
▸ close(code?
, reason?
): void
关闭WebSocket
连接或连接尝试(如果有的话)。如果连接已经关闭,则此方法不执行任何操作。
Example
ws.close()
=> close Socket
ws.close()
=> close Socket
Parameters
Name | Type | Description |
---|---|---|
code? | number | 一个数字状态码,它解释了连接关闭的原因。如果没有传这个参数,默认使用 1005。 CloseEvent允许的状态码见 状态码列表 。 |
reason? | string | 一个人类可读的字符串,它解释了连接关闭的原因。这个 UTF-8 编码的字符串不能超过 123 个字节。 |
Returns
void
send
▸ send(data
): void
将需要通过WebSocket
链接传输至服务器的数据排入队列,并根据所需要传输的data bytes
的大小来增加bufferedAmount
的值。 若数据无法传输(例如数据需要缓存而缓冲区已满)时,套接字会自行关闭。
Example
const observer = new Observer()
observer.on('open', func)
observer.emit('open')
=> func()
const observer = new Observer()
observer.on('open', func)
observer.emit('open')
=> func()
Parameters
Name | Type | Description |
---|---|---|
data | unknown | 用于传输至服务器的数据。它必须是以下类型之一: USVString 文本字符串。字符串将以 UTF-8 格式添加到缓冲区,并且 bufferedAmount 将加上该字符串以 UTF-8 格式编码时的字节数的值。 ArrayBuffer 可以使用一有类型的数组对象发送底层二进制数据;其二进制数据内存将被缓存于缓冲区,bufferedAmount 将加上所需字节数的值。 Blob Blob 类型将队列 blob 中的原始数据以二进制中传输。 bufferedAmount 将加上原始数据的字节数的值。 ArrayBufferView 可以以二进制帧的形式发送任何 JavaScript 类数组对象 ;其二进制数据内容将被队列于缓冲区中。值 bufferedAmount 将加上必要字节数的值。 |
Returns
void