开发工具版本:1.02.1805181

需求简述:使用小程序扫描电脑浏览器页面中的二维码,小程序通过WebSocket发送数据到我司的服务器。启动远程调试后,第一次测试都OK。但稍等,再次测试失败。我尝试了传统的wx.onSocketOpen写法,也试了SocketTask写法,都无法做到失败重连。请大神协助,谢谢!

// websocket.js
const app = getApp();

let url = 'ws://10.13.18.151:9092';

export const connect = function (callbackFunc) {  // 定义一个方法
  var SocketTask = wx.connectSocket({
    url: url,
    success: function () {
      console.log('wx.connectSocket成功');
    },
    fail: function(err) {
      if (err) {
        console.log('###### wx.connectSocket连接失败', err)
        app.globalData.socketConnectFail = true // 定义一个全局变量,当链接失败时改变变量的值
      }
    },
    complete: function () {
      console.log('wx.connectSocket完成');
    }
  })

  SocketTask.onOpen(function (res) { // 监听WebSocket连接打开事件。
    console.log('进入wx.onSocketOpen()');
    SocketTask.send({ // 通过 WebSocket 连接发送数据,需要先 wx.connectSocket,并在 wx.onSocketOpen 回调之后才能发送。
      data: '9999999999999999999999999999999999', // 用于订阅的参数,视具体情况而定
      success(data) {
        console.log('wx.sendSocketMessage成功:', data.errMsg)
      },
      fail(err) {
        console.log('wx.sendSocketMessage失败', err)
        console.dir(err);
      }
    })

  })

  SocketTask.onMessage(function (res) { // 监听WebSocket接受到服务器的消息事件。
    console.log('WebSocket接收到消息:', res);
    callbackFunc(res.data); // 将接收到的消息进行回调,如果是ArryBuffer,需要进行转换
  })

  SocketTask.onError(function (res) { // 监听WebSocket错误。
    console.log('###### wx.onSocketError');
    app.globalData.socketConnectFail = true // 定义一个全局变量,当链接失败时改变变量的值
  })
<

展开全部
收起
2回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Jasper

    11人对此回答表示赞同

    我看API不是必须是SSL的wss吗协议吗?居然第一次可以连上。bug

    展开
    11
    1回复
    发布于 6年前

    评论(1)

    收起评论

    • 思念在大脑里裸奔 2019-01-10 09:05

      本机开发可以暂时不wss。

      回复
  • Madison

    10人对此回答表示赞同

    我也遇到这个问题

    展开
    10
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部