不知是否可以这样用:
roomIds是一个有几十个conversion的数组,我循环遍历进行加入, 一两个的时候没问题,数量一多,程序就直接没有任何输出了。

rt.on('open', function() {
  roomIds.forEach(function(roomId){
    rt.room(roomId, function(object) {
     object.join(function() {
        console.log("joined"+roomId);
      });
    });
  });
});

? 有人帮忙看看吗?

这样用有问题的,实时通讯会有一个请求限制,每分钟 30 次。这样批量的大操作应该是避免的,加一两个可以。建议改为串行。

我需要获取每个conversation的log, 尝试了下使用promise的顺序方式获取,但是貌似room.log方法如果聊天记录是空就不会掉用回调函数?
那好像就不会继续往下执行...

不会的,你代码怎么写的?

可能是前面写错了,room能这么使用吗?

RealtimeObject.room(roomId).then()

我试了貌似不行, room返回的貌似不是promise

另外获取log还有这个错误:
[Error] TypeError: callback is not a function. (In 'callback(data.logs)', 'callback' is an instance of Object)
fun
emit
wsMessage
(anonymous function)

realtime.js报出来的

可以帮忙看看吗?

我测试了下顺序加入的方式, 每次加入有一定的延迟,结果还是最多加入17-18个room,之后就卡住了...

timerPromisefy(100).then(function(){
            return new Promise(function(resolve, reject){
                roomCnt++;
                console.log("get room0"+threadID+"cnt:"+roomCnt);
                rt.room(threadID, function(object) {
                  console.log("get room1"+object);
                  resolve(object);
            });
          });

就是卡在了获取room信息这里. get room0 输出后, 就没有了... 在后续的then中也没有error被触发.

我测试了下delay 2秒的话不会卡住....这是为什么.... 每个会话加入要delay两秒太慢了

对,还是触发了单位时间内的请求限制。
其实不应该这么大批量的实例化 room 的。

嗯,这个我可以通过成员列表判断下, 但是获取log呢? 我感觉room.log也是有限制。
实际上我做的是一个聊天室管理的功能,把游戏中所有公会聊天全部列出来并显示聊天记录, 这个是要用REST api比较好吗?

这种需求可以先把聊天室列表显示出来,不必每个 Room 都实例化,然后当你点击某个 room 的时候,再去获取它的 log,就可以绕过这个限制了。