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

代码示例

  1. let socketTask = tt.connectSocket({
  2. url: 'wss://somepath',
  3. protocols: ['p1']
  4. });
  5. socketTask.onOpen(() => {
  6. console.log('WebSocket 已连接');
  7. });
  8. socketTask.onClose(() => {
  9. console.log('WebSocket 已断开');
  10. });
  11. socketTask.onError(error => {
  12. console.error('WebSocket 发生错误:', error);
  13. });
  14. socketTask.onMessage(message => {
  15. console.log('socket message:', message)
  16. let data = message.data;
  17. if (Object.prototype.toString.call(data) === '[object ArrayBuffer]') {
  18. data = Codec.read(data);
  19. }
  20. });

已知问题

原文: https://developer.toutiao.com/docs/api/connectSocket.html