RocketChat / RocketChat/Rocket.Chat
[bug] stream-notify-room subscription
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 46.1k
- Forks
- 13.9k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 130
Description
reference : #22817
Description
Hi, I found a bug in the subscription to stream-notify-room in realtime api.
I followed the instruction to subscribe to typing (a event of stream-notify-room) but instead of receive ready answer I receive nosub.
I used ddp library that provides the unique subscription-id. The others parameters are in the format specified by the documentation ( https://developer.rocket.chat/api/realtime-api/subscriptions/stream-notify-room)
Steps to reproduce:
-
creation of ddp client using ddp lib
-
connection to server using ddp client
-
login with ddp client using ddp-login lib
-
register the guest (call to
livechat:registerGuest) -
send the first message that creates the room (call to
sendMessageLivechat) -
subscription:
ddpClient.subscribe("stream-notify-room", [roomId+"/typing", false], () => { console.log("subscription"); } ); -
listen to new message
Expected behavior:
receive { msg: 'ready', subs: [ 'a number' ] }
Actual behavior:
receive { msg: 'nosub', id: 'a number' }
Server Setup Information:
-
Version of Rocket.Chat Server: 3.17.1
-
Operating System: Ubuntu 20.04.2
-
Deployment Method: snap
-
Number of Running Instances: 1
-
DB Replicaset Oplog: Enabled
-
NodeJS Version: 12.22.1
-
MongoDB Version: 3.6.14
-
Proxy: nginx
-
Firewalls involved: none
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the documented stream-notify-room subscription sequence with the DDP client, including guest registration and room creation. Compare the subscription request and the received ready or nosub response; done means the documented typing subscription returns ready on the reported server setup.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100