tt.connectSocket收藏我的收藏
收藏
我的收藏
基础库版本 1.0.0 开始支持
创建一个 WebSocket 连接实例,并通过返回的SocketTask操作该连接。网络相关的 API 在使用前需要配置域名白名单。
语法
tt.connectSocket(options)
参数说明
options
为 Object 类型,属性如下:
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
---|---|---|---|---|---|
url | string | -- | 是 | Socket 连接地址 | 1.0.0 |
header | object | -- | 否 | HTTP Header | 1.0.0 |
protocols | Array | null | 否 | 子协议数组 | 1.0.0 |
success | function | -- | 否 | 接口调用成功的回调函数 | 1.0.0 |
fail | function | -- | 否 | 接口调用失败的回调函数 | 1.0.0 |
complete | function | -- | 否 | 接口调用结束的回调函数(成功、失败都执行) | 1.0.0 |
回调成功
Object 类型,属性如下:
参数 | 参数类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | 回调信息 | 1.0.0 |
socketTaskId | number | 当前创建的 sockTask 的序号 | 1.0.0 |
回调失败
Object 类型,属性如下:
参数 | 参数类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | 错误信息 | 1.0.0 |
返回值
SocketTask(Socket 任务对象),调用 tt.connectSocket
后返回的请求对象。
代码示例
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); } });
Bug & Tip
- Tip:
header
不支持设置referer
字段。 - Tip:在当前小程序页面已经有一个
WebSocket
连接的情况下,如果再创建一个WebSocket
连接,会重新创建一个WebSocket
连接,但是之前创建的WebSocket
连接并不会自动关闭。 - Tip:在使用
send
方法时,参数必须是object
类型,而具体发送的数据必须在object
的data
字段。 - Tip:WebSocket 服务器接口地址必须是
wss
协议,且域名必须是后台配置的合法域名。 - Tip:在创建
WebSocket
时,如果参数中protocols
是非空,请确保 WebSocket 服务器能解析并且返回相应的 protocol,否则会创建WebSocket
失败。
该文档是否有帮助?