小程序集成极光IM sendSocketMessage:fail WebSocket is not connected解决办法

小程序集成极光IM sendSocketMessage:fail WebSocket is not connected解决办法

问题.小程序报了异常 sendSocketMessage:fail WebSocket is not connected

解决方法:

因为小程序只有五个socket通道,出了这个说明初始化JMessage太多了,超出了5个,我这里的解决方法是在,app.js中做初始化。全局都使用一个JMessage。这样会解决这个问题。

问题2:另外如果小程序隐藏时间久了,socket通道会自动关闭,

解决方法:

我这里的解决办法是在onHide方法中退出,在onShow中重新初始化JMessage
app.js.代码如下

require('./common/runtime.js')
require('./common/vendor.js')
require('./common/main.js')
var md5 = require("./common/md5.js")
var JMessage = require("./common/jmessage-wxapplet-sdk-1.4.0.min.js")
//app.js

App({
  onLaunch: function () {
    //调用API从本地缓存中获取数据
    var jim = new JMessage({});
    this.globalData.jim = jim;
    
   
  },
  onShow:function(){
    //应用显示初始化JMessage
    this.initJG();
 
    
  },
  onHide: function (){
    //应用隐藏登出JMessage
    this.globalData.jim.loginOut();
  },
  createNonceStr: function () {
    var str = "",
      range = 20, //min
      arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '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', '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'
      ];

    // 随机产生
    if (true) {
      range = Math.round(Math.random() * (36 - 20)) + 20;
    }
    for (var i = 0; i < range; i++) {
      var pos = Math.round(Math.random() * (arr.length - 1));
      str += arr[pos];
    }
    return str;
  },
   //初始化JMessage的代码
  initJG(){
    var random_str = this.createNonceStr();
    var myDate = new Date().getTime();
    var signature = md5("appkey=xxxxxxxxxx&timestamp=" + myDate + "&random_str=" + random_str +      "&key=xxxxxxxxxx");    this.globalData.jim.init({
      "appkey": "xxxxxxxxxx",      
      "random_str": random_str,
      "signature": signature,
      "timestamp": myDate,
      //开启漫游 获取漫游数据  100条聊天记录
      "flag": 1,
    }).onSuccess(function (data) {
      //TODO
      console.log("initonSuccessdata", data);

    }).onFail(function (data) {
      //TODO
      console.log("initonFaildata", data);
    });

  },
  globalData: {
    jim: null,
  }
})

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值