Hi,

我的应用是一个混合架构,在ios上获取聊天记录没问题,但在安卓版和移动端站点(ios、andoird和移动端站点公用一套web代码)上访问一直卡在websocket的一个请求上,状态为101(switching protocols),请问这个是什么原因?

你好,是否使用的是我们标准SDK?

你好,
使用的是标准sdk,实现部分也是参考leancloud提供的代码片段做的。

// 获取消息历史
      function getLog(callback, isAppend) {
        //var height = printWall.scrollHeight;
        if (logFlag) {
          return;
        } else {
          // 标记正在拉取
          logFlag = true;
        }
        room.log({
          t: msgTime
        }, function (data) {
          logFlag = false;
          // 存储下最早一条的消息时间戳
          var l = data.length;
          if (first) {
            historyCount = l;
          }
          if (l) {
            msgTime = data[0].timestamp;
          }
          for (var i = l - 1; i >= 0; i--) {
            if (!isAppend) {
              showMsg(data[i], true);
            }
            else {
              showMsg(data[i], true);
            }
          }

          if (callback) {
            callback();
          }
        });
      }

你好,
我发现问题好像是因为房间对象没有拿到导致的,但是roomid是存在的,请看下面代码片段:

同样的代码在ios下运行可以拿到room对象。

首先,websocket 在控制台显示状态为101(switching protocols)是正常的。

另外,请问 SDK 版本是多少?

你好,
"name": "leancloud-realtime",
"version": "2.3.3",

刚才又试了一下,安卓和网站上有时候又能拿到聊天记录,大概10次能拿到1次的概率,我根据roomid去查conversation表,是有记录的。

好的,谢谢,我试一下。

升级到目前最新的2.3.5后问题解决,谢谢。