1

我正在尝试为 Rocket.Chat 实时聊天构建自己的聊天前端。但目前我有一个问题,我无法订阅实时聊天室进行收听。

1) RealtimeAPI:我连接到 Rocket.chat 网络服务

2) RealtimeAPI:我用“livechat:registerGuest”注册来宾用户

3)Rest API:我用“/api/v1/livechat/room?token=”创建了一个房间

我得到这个答案:

{ room:
 { _id: '43TJpc3q9eRjqhFXW',
   msgs: 1,
   usersCount: 2,
   lm: '2020-05-26T13:29:21.965Z',
   fname: 'jxkyZ72fFneYCMNnM',
   t: 'l',
   ts: '2020-05-26T13:29:21.965Z',
   departmentId: '2DKbAHmjxHtEL8g3n',
   v:
    { _id: 'D6B7wJ7kcFb2QmR2u',
      username: 'guest-83',
      token: 'jxkyZ72fFneYCMNnM',
      status: 'online' },
   cl: false,
   open: true,
   waitingResponse: true,
   _updatedAt: '2020-05-26T13:29:22.047Z',
   servedBy:
    { _id: 'irByyRx98ii4wjGmj',
      username: 'Admin',
      ts: '2020-05-26T13:29:22.019Z' } },
newRoom: true,
success: true }

我将此_id: '43TJpc3q9eRjqhFXW'值用于订阅房间名称,所有其他都导致“无效事件”

4)我尝试订阅“stream-room-messages”和“stream-livechat-room”,但我只收到{"msg":"nosub","id":"3"}而不是这样的

{
    "msg":"ready",
    "subs":[
        "43TJpc3q9eRjqhFXW"
    ]
}

而且我没有收到来自实时聊天室的消息。

有人可以告诉我我做错了什么或缺少什么吗?

提前感谢弗兰克

4

1 回答 1

4

好的,经过大量测试,我找到了自己的答案。

要订阅实时聊天消息事件,对象必须如下所示:(正确对象)

{
 "msg":"sub",
 "id":"3",
 "name":"stream-room-messages",
 "params":[
     roomname,
     {
       "useCollection":false,
       "args":[{"visitorToken":token}]
     }
  ]
}

它必须是“ visitorToken ”而不是“ token ”。

官方文档在这里是错误的,它说:(错误对象)

{
    "msg":"sub",
    "id":"6NctZomXL3ZdtKNsn",
    "name":"stream-livechat-room",
    "params":[
        "KTZqPAR9DQGxKcxzf",
        {
            "useCollection":false,
            "args":[
                {
                    "token":"jkGaw6duhiuh45"
                }
            ]
        }
    ]
};

现在它可以订阅直播频道并接收来自 Live Agent 的消息。

于 2020-05-26T14:57:45.997 回答