swan.closeSocket

解释:关闭 WebSocket 连接。必须在 WebSocket 打开期间调用 swan.closeSocket 才能关闭。

方法参数

Object object

object参数说明

属性名类型必填默认值说明
codeNumber一个数字值表示关闭连接的状态号,表示连接被关闭的原因。如果这个参数没有被指定,默认的取值是1000 (表示正常连接关闭)
reasonString一个可读的字符串,表示连接被关闭的原因。这个字符串必须是不长于123字节的 UTF-8 文本(不是字符)
successFunction接口调用成功的回调函数
failFunction否 接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

示例

在开发者工具中预览效果

扫码体验

swan.closeSocket - 图1请使用百度APP扫码

图片示例

swan.closeSocket - 图2

swan.closeSocket - 图3

swan.closeSocket - 图4

代码示例

  • 在 js 文件中
  1. Page({
  2. onShow() {
  3. let that = this;
  4. swan.connectSocket({
  5. url: 'wss://echo.websocket.org',
  6. header: {},
  7. success: res => {
  8. console.log('connectSocket success', res);
  9. swan.showToast({
  10. title: 'websocket已打开',
  11. icon: 'none'
  12. });
  13. },
  14. fail: err => {
  15. console.log('connectSocket fail', err);
  16. }
  17. });
  18. swan.onSocketOpen(function () {
  19. that.setData({'openWebsocket': true});
  20. })
  21. },
  22. closeSocket() {
  23. //注意这里有时序问题,
  24. //如果 swan.connectSocket 还没回调 swan.onSocketOpen,而先调用 swan.closeSocket,那么就做不到关闭 WebSocket 的目的。
  25. //必须在 WebSocket 打开期间调用 swan.closeSocket 才能关闭。
  26. let openWebsocket = this.getData('openWebsocket');
  27. if (openWebsocket) {
  28. swan.closeSocket({
  29. code: '1001',
  30. reason: 'close reason',
  31. success: res => {
  32. swan.showModal({
  33. title: 'websocket已关闭',
  34. });
  35. console.log('WebSocket链接关闭成功', res);
  36. },
  37. fail: err => {
  38. console.log('WebSocket链接关闭失败', err);
  39. }
  40. });
  41. }
  42. }
  43. });

错误码

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