字节跳动小程序开发API connectSocket

由 卓别林 创建, 最后一次修改 2019-08-15

创建一个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);
    }
});

已知问题



以上内容是否对您有帮助:
二维码
建议反馈
二维码