connectSocket 1.0.0+
创建一个WebSocket连接实例,并通过返回的socketTask
操作该连接。
提示
网络相关的 API 在使用前需要配置域名白名单。请参考网络请求使用说明
输入
名称 | 数据类型 | 属性 | 默认值 | 描述 |
---|---|---|---|---|
url | string | required | N/A | Socket连接地址 |
header | object | optional | `` | HTTP Header |
protocols | Array[string] | optional | null | 子协议数组 |
输出
socketTask
对象,该对象具有如下方法:
send(msg)
发送数据。msg
继承标准对象输入,扩展属性描述:
名称 | 数据类型 | 属性 | 默认值 | 描述 |
---|---|---|---|---|
data | string|arraybuffer | required | N/A | 数据内容 |
close(option)
关闭Socket连接。option
继承标准对象输入,扩展属性描述:
名称 | 数据类型 | 属性 | 默认值 | 描述 |
---|---|---|---|---|
code | number | optional | 1000 | 关闭连接状态码 |
reason | string | optional | `` | 关闭连接消息 |
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);
}
});
已知问题
原文: https://developer.toutiao.com/docs/api/connectSocket.html