RocketChat / RocketChat/Rocket.Chat
Proxy balanced setup: Webrtc notifications of starting call ane not sent when clients are proxied to different instances of rocketchat
@rodrigok is already working on this.
Since Sep 13, 2017.
- Dominant language
- TypeScript
- Stars
- 46.1k
- Forks
- 13.9k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 130
Description
Description:
Hello to everybody. I set up the following architecture:
Backend: 4 ubuntu 16.04 platforms
1 rocketchat installation (4 node instances)
3 mongo DBs with replica set
Frontend: wheezy machine with apache 2.2 proxy balancer with sticky sessions
In this environment, trying to make a webrtc video call to a direct peer, webrtc notifications of starting calls are not sent to the receiver when caller and receiver browser are proxied to different instances of rocketchat. As a final result, video conference cannot be start.
Changing the proxy balancer sticky session cookie on one browser to match the cookie peer's value and reloading the page, solve the issue.
Server Setup Information:
- Version of Rocket.Chat Server: 0.58.2
- Operating System: ubuntu 16.04.3 LTS
- Deployment Method(snap/docker/tar/etc):tar archive
- Number of Running Instances: 4 on single host
- DB Replicaset Oplog:
- Node Version: v4.5.0
Steps to Reproduce:
1)Select a direct contact
2) click on his icon to make peer profile appear on right side of screen
3) clink on camera icon below peers's avatar image to start a video call
If the receiver is being proxyed to the same rocketchat instance of the caller everything works ok, otherwise the notification of the incoming call is not forwarded to the receiving partner.
Relevant logs:
No logs are present in both peers browsers.
On the server the produced log is the same in both working and not working scenario.
Meteor ➔ method stream-notify-room-users -> userId: tjDH4vSBSRFy8yr7R , arguments: { '0': 'owi4Rv4ZpbcdvbeNZtjDH4vSBSRFy8yr7R/webrtc',
'1': 'call',
'2':
{ from: 'tjDH4vSBSRFy8yr7R',
room: 'owi4Rv4ZpbcdvbeNZtjDH4vSBSRFy8yr7R',
media: { audio: true, video: true } } }
Meteor ➔ method jitsi:updateTimeout -> userId: krNbfr82fGzRPqAbe , arguments: { '0': 'krNbfr82fGzRPqAbetjDH4vSBSRFy8yr7R' }
Meteor ➔ method jitsi:updateTimeout -> userId: krNbfr82fGzRPqAbe , arguments: { '0': 'krNbfr82fGzRPqAbetjDH4vSBSRFy8yr7R' }
Meteor ➔ method jitsi:updateTimeout -> userId: krNbfr82fGzRPqAbe , arguments: { '0': 'krNbfr82fGzRPqAbetjDH4vSBSRFy8yr7R' }
Any clues about where starting to investigate?
Best regards.
Giorgio
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.
Assessment
This issue has not been assessed yet.