swan.sendSocketMessage

解释:通过 WebSocket 连接发送数据,需要先调用 swan.connectSocket,并在 swan.onSocketOpen 回调之后才能发送。

# 方法参数

Object object

# object参数说明

属性名 类型 必填 默认值 说明
data String 需要发送的内容
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

# 示例

扫码体验
重新加载
请使用百度APP扫码

# 图片示例

# 代码示例 1 :

    <button type="primary" bindtap="sendSocketMessage">发送消息</button>
    
    Page({
        sendSocketMessage() { 
            swan.onSocketOpen(function () {
                swan.sendSocketMessage({
                    data: 'baidu',
                    success: res => {
                        swan.showToast({
                            title: 'WebSocket发送数据成功',
                            icon: "none"
                        });
                        console.log('WebSocket发送数据成功', res);
                    },
                    fail: err => {
                        console.log('WebSocket发送数据失败', err);
                    }
                });
            });
    
            swan.connectSocket({
                url: 'wss://echo.websocket.org',
                header: {},
                success: res => {
                    console.log('connectSocket success', res);
                },
                fail: err => {
                    console.log('connectSocket fail', err);
                }
            });
        }
    });
    
    

    # 代码示例 2 - 示例 1 的另一种写法 :

      <button type="primary" bindtap="sendSocketMessage">发送消息</button>
      
      Page({
          sendSocketMessage() { 
              new Promise((resolve, reject) => {
                  const socketHandler = swan.connectSocket({
                      url: 'wss://echo.websocket.org',
                      header: {},
                      success: function (res) {
                          console.log('connectSocket success', res.socketTaskId)
                      },
                      fail: function (err) {
                          reject(err);
                          console.log('connectSocket fail', err);
                      }
                  });
                  socketHandler.onOpen(function () {
                      resolve(socketHandler);
                  });
              })
              .then(socketHandler => {
                  swan.sendSocketMessage({
                      data: 'baidu',
                      success: res => {
                          swan.showToast({
                              title: 'WebSocket发送数据成功',
                              icon: "none"
                          });
                          console.log('WebSocket发送数据成功', res);
                      },
                      fail: err => {
                          console.log('WebSocket发送数据失败', err);
                      }
                  });
              })    
          }
      });
      

      # 错误码

      # Android

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

      # iOS

      错误码 说明
      4 参数有误