connectSocket 1.0.0+

创建一个 WebSocket 连接实例,并通过返回的socketTask操作该连接。

提示

网络相关的 API 在使用前需要配置域名白名单。请参考网络请求使用说明

输入

名称数据类型属性默认值描述
urlstringrequiredN/ASocket 连接地址
headerobjectoptional | HTTP Header
protocolsArray[string]optionalnull子协议数组

输出

socketTask对象,该对象具有如下方法:

send(msg)

发送数据。 msg继承标准对象输入,扩展属性描述:

名称数据类型属性默认值描述
datastring|arraybufferrequiredN/A数据内容

close(option)

关闭 Socket 连接。 option继承标准对象输入,扩展属性描述:

名称数据类型属性默认值描述
codenumberoptional1000关闭连接状态码
reasonstringoptional | 关闭连接消息

onOpen(() => {})

监听连接成功的事件回调。

onClose(() => {})

监听连接关闭的事件回调。

onError((res) => {})

监听连接发生错误的事件回调。

onMessage((res) => {})

监听连接成功的事件回调。res.data表示返回的数据,其数据格式是string|arraybuffer

代码示例

let socketTask = tt.connectSocket({
  url: "wss://somepath",
  protocols: ["p1"]
});

socketTask.onOpen(() => {
  console.log("WebSocket 已连接");
});

socketTask.onClose(() => {
  console.log("WebSocket 已断开");
});

socketTask.onError(error => {
  console.error("WebSocket 发生错误:", error);
});

socketTask.onMessage(message => {
  console.log("socket message:", message);

  let data = message.data;

  if (Object.prototype.toString.call(data) === "[object ArrayBuffer]") {
    data = Codec.read(data);
  }
});