WebSocket

OPPO 小游戏 Runtime 按照 web 标准实现了 WebSocket 功能

WebSocket 对象提供了用于创建和管理 WebSocket 连接,以及可以通过该连接发送和接收数据的 API。

构造方法

WebSocket(url, protocols)

返回一个 WebSocket 对象

参数

url

要连接服务端的地址。

protocols

可选参数。单协议字符串或者包含协议字符串的数组。这些字符串用于指定子协议,这样单个服务器可以实现多个 WebSocket 子协议(例如,您可能希望一台服务器能够根据指定的协议处理不同类型的交互)protocol)。如果不指定协议字符串,则假定为空字符串。

属性

不支持的属性

  • extensions 属性

WebSocket.onclose

用于指定连接关闭后的回调函数

代码示例:

aWebSocket.onclose = function(event) {
  console.log('WebSocket is closed now.')
}

WebSocket.onerror

用于指定连接失败后的回调函数

代码示例:

aWebSocket.onerror = function(event) {
  console.error('WebSocket error observed:', event)
}

WebSocket.onmessage

用于指定当从服务器接受到信息时的回调函数

代码示例:

aWebSocket.onmessage = function(event) {
  console.debug('WebSocket message received:', event)
}

WebSocket.onopen

用于指定连接成功后的回调函数

代码示例:

aWebSocket.onopen = function(event) {
  console.log('WebSocket is open now.')
}

WebSocket.bufferedAmount

只读属性,返回已调用 send() ,在队列中尚未传输到网络的数据的字节数。发送所有队列里的数据后,此值将重置为零。当连接关闭时,该值不会重置为零。如果您继续调用 send(),此值将继续上升。

WebSocket.binaryType

使用二进制的数据类型连接

value

"blob": 使用 Blob 对象

"arraybuffer": 使用 ArrayBuffer 对象

WebSocket.readyState

当前的链接状态

readyState 的合法值

  • 0 (CONNECTING)

正在链接中

  • 1 (OPEN)

已经链接并且可以通讯

  • 2 (CLOSING)

连接正在关闭

  • 3 (CLOSED)

连接已关闭或者没有链接成功

方法

WebSocket.close(code, reason)

关闭当前链接

参数

code

可选参数。Number 型数字,表示关闭原因的关闭码,默认值 1005。合法的状态码值可见MDN 文档

reason

可选参数。string 类型,用于解释链接关闭的原因。

WebSocket.send(data)

向服务器发送数据

参数

data

发送给服务端的数据,必须是以下三种类型之一:

  • USVString
  • ArrayBuffer
  • TypedArray

示例代码:

var socket = new WebSocket('ws://localhost:8080')

socket.onopen = function(event) {
  socket.send('Hello Server!')
}

socket.onmessage = function(event) {
  console.log('Message from server ', event.data)
}

socket.onclose = function(event) {
  console.log('WebSocket is closed now.')
}

socket.onerror = function(event) {
  console.error('WebSocket error observed:', event)
}
© 2020 OPPO. All rights reserved.

results matching ""

    No results matching ""