阅读(1377) (8)

百度智能小程序 创建一个连接

2020-08-13 15:36:02 更新

swan.connectSocket

请参考使用注意事项进行开发。

解释:创建一个 WebSocket 连接。

方法参数

Object object

object参数说明

属性名 类型 必填 默认值 说明 Web 态说明

url

String

开发者服务器接口地址,必须是 wss 协议,且域名必须是后台配置的合法域名。

header

Object

HTTP Header , Header 中不能设置 Referer。

由于 W3C 规范限制, Web 态下传入的 header 配置不生效

protocols

Array.<string>

子协议数组

success

Function

接口调用成功的回调函数

fail

Function

接口调用失败的回调函数

complete

Function

接口调用结束的回调函数(调用成功、失败都会执行)

示例 

在开发者工具中打开



图片示例



代码示例

<button type="primary" bindtap="connectSocket">connectSocket</button>
Page({
    connectSocket() {
        swan.connectSocket({
            url: 'wss://echo.websocket.org',
            header: {
                'content-type': 'application/json'
            },
            protocols: [],
            success: res => {
                swan.showToast({
                    title: 'websocket 连接成功',
                    icon: 'none'
                });
                console.log('connectSocket success', res);
            },
            fail: err => {
                swan.showModal({
                    title: 'websocket 连接失败',
                    content: JSON.stringify(err)
                });
                console.log('connectSocket fail', err);
            }
        });
    }
});

Bug & Tip

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

错误码

Android

错误码 说明

302

找不到调起协议对应端能力方法

202

解析失败,请检查参数是否正确。

1001

执行失败

iOS

错误码 说明 errMsg

4

参数有误

7

安全校验失败

errorCode 为 1

超过设置的最大 task 数量

errorCode 为 2

url/subProtocals 错误

errorCode 为 3

创建 task 实例失败