火箭聊天实时聊天室订阅问题



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

1(实时API:我连接到rocket.chat网络服务

2(实时API:我用"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(我尝试订阅"流房间消息"和"流实时聊天室",但对于两者,我只收到{"msg":"nosub","id":"3"}而不是这样的东西

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

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

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

提前致谢 弗兰克

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

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

{
"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"
}
]
}
]
};

现在,它可以订阅实时频道并从实时代理接收消息。

最新更新