swan.connectSocket

请参考使用注意事项swan.connectSocket - 图1进行开发。

解释:创建一个 WebSocket 连接。

方法参数

Object object

object参数说明

属性名类型必填默认值说明Web 态说明
urlString开发者服务器接口地址,必须是 wss 协议,且域名必须是后台配置的合法域名。
headerObjectHTTP Header,Header 中不能设置 Referer。由于 W3C 规范限制, Web 态下传入的 header 配置不生效
protocolsStringArray子协议数组
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

示例

在开发者工具中预览效果

扫码体验

swan.connectSocket - 图2请使用百度APP扫码

图片示例

swan.connectSocket - 图3

swan.connectSocket - 图4

swan.connectSocket - 图5

代码示例

  • 在 js 文件中
  1. Page({
  2. connectSocket() {
  3. swan.connectSocket({
  4. url: 'wss://echo.websocket.org',
  5. success: res => {
  6. swan.showToast({
  7. title: 'websocket 连接成功',
  8. icon: 'none'
  9. });
  10. console.log('connectSocket success', res);
  11. },
  12. fail: err => {
  13. swan.showModal({
  14. title: 'websocket 连接失败',
  15. content: JSON.stringify(err)
  16. });
  17. console.log('connectSocket fail', err);
  18. }
  19. })
  20. }
  21. });

错误码

Android

错误码说明
302找不到调起协议对应端能力方法
202解析失败,请检查参数是否正确
1001执行失败

iOS

错误码说明errMsg
4参数有误
7安全校验失败
errorCode为1超过设置的最大task数量
errorCode为2url/subProtocals错误
errorCode为3创建task实例失败

Bug & Tip

  • 基础库 1.9.4 之前,一个智能小程序同时只能有一个 WebSocket 连接,如果当前已存在一个 WebSocket 连接,会自动关闭该连接,并重新创建一个 WebSocket 连接。
  • 基础库版本 1.9.4 及以后,支持存在多个 WebSokcet 连接,每次成功调用 swan.connectSocket 会返回一个新的 SocketTaskswan.connectSocket - 图6