Skip to content

Class: WrapperWebSocket

core/useWebSocket.WrapperWebSocket

包装器类。

Constructors

constructor

new WrapperWebSocket(url, config, observer)

Parameters

NameType
urlstring
configRequiredWebSocketOption
observerWrapperObserver

Properties

#autoReconnect

Private Readonly #autoReconnect: Object

Type declaration

NameTypeDescription
delaynumber重连间隔毫秒数。
enableboolean是否启用。
retriesnumber最大重连次数。

#heartbeat

Private Readonly #heartbeat: Object

Type declaration

NameTypeDescription
enableboolean是否启用。
intervalnumber心跳间隔毫秒数。
messagestring | 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

NameType
interceptorsWebSocketInterceptor

Returns

void


#webSocketInterceptorsHandle

Private #webSocketInterceptorsHandle(): void

挂载interceptors,发布特定事件,处理边界情况。

Returns

void


close

close(code?, reason?): void

关闭WebSocket连接或连接尝试(如果有的话)。如果连接已经关闭,则此方法不执行任何操作。

Example

ts
ws.close()
=> close Socket
ws.close()
=> close Socket

Parameters

NameTypeDescription
code?number一个数字状态码,它解释了连接关闭的原因。如果没有传这个参数,默认使用 1005。 CloseEvent允许的状态码见 状态码列表
reason?string一个人类可读的字符串,它解释了连接关闭的原因。这个 UTF-8 编码的字符串不能超过 123 个字节。

Returns

void


send

send(data): void

将需要通过WebSocket链接传输至服务器的数据排入队列,并根据所需要传输的data bytes的大小来增加bufferedAmount的值。 若数据无法传输(例如数据需要缓存而缓冲区已满)时,套接字会自行关闭。

Example

ts
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

NameTypeDescription
dataunknown用于传输至服务器的数据。它必须是以下类型之一: USVString 文本字符串。字符串将以 UTF-8 格式添加到缓冲区,并且 bufferedAmount 将加上该字符串以 UTF-8 格式编码时的字节数的值。 ArrayBuffer 可以使用一有类型的数组对象发送底层二进制数据;其二进制数据内存将被缓存于缓冲区,bufferedAmount 将加上所需字节数的值。 Blob Blob 类型将队列 blob 中的原始数据以二进制中传输。 bufferedAmount 将加上原始数据的字节数的值。 ArrayBufferView 可以以二进制帧的形式发送任何 JavaScript 类数组对象 ;其二进制数据内容将被队列于缓冲区中。值 bufferedAmount 将加上必要字节数的值。

Returns

void