title: Taro.connectSocket(option)

sidebar_label: connectSocket

创建一个 WebSocket 连接。使用前请注意阅读相关说明

并发数

  • 1.7.0 及以上版本,最多可以同时存在 5 个 WebSocket 连接。
  • 1.7.0 以下版本,一个小程序同时只能有一个 WebSocket 连接,如果当前已存在一个 WebSocket 连接,会自动关闭该连接,并重新创建一个 WebSocket 连接。

支持情况:connectSocket - 图1 connectSocket - 图2 connectSocket - 图3 connectSocket - 图4 connectSocket - 图5

参考文档

类型

  1. (option: Option) => Promise<SocketTask>

参数

参数 类型
option Option

Option

参数 类型 必填 说明
url string 开发者服务器 wss 接口地址
complete (res: TaroGeneral.CallbackResult) => void 接口调用结束的回调函数(调用成功、失败都会执行)
fail (res: TaroGeneral.CallbackResult) => void 接口调用失败的回调函数
header TaroGeneral.IAnyObject HTTP Header,Header 中不能设置 Referer
protocols string[] 子协议数组
success (res: TaroGeneral.CallbackResult) => void 接口调用成功的回调函数
tcpNoDelay boolean 建立 TCP 连接的时候的 TCP_NODELAY 设置

示例代码

示例 1

  1. Taro.connectSocket({
  2. url: 'wss://example.qq.com',
  3. header:{
  4. 'content-type': 'application/json'
  5. },
  6. protocols: ['protocol1']
  7. })

示例 2

  1. Taro.connectSocket({
  2. url: 'ws://echo.websocket.org/echo',
  3. success: function () {
  4. console.log('connect success')
  5. }
  6. }).then(task => {
  7. task.onOpen(function () {
  8. console.log('onOpen')
  9. task.send({ data: 'xxx' })
  10. })
  11. task.onMessage(function (msg) {
  12. console.log('onMessage: ', msg)
  13. task.close()
  14. })
  15. task.onError(function () {
  16. console.log('onError')
  17. })
  18. task.onClose(function (e) {
  19. console.log('onClose: ', e)
  20. })
  21. })