-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Communication Nice To Have #64
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for implementing the video and audio communication. Generally looks ok. I have left some suggestions here. I have approved the PR so you can merge when you are ready.
UI Issues
A small improvement may be to toggle the "CALL" button to a "END CALL" button once a call starts, and we may also want to toggle the color of this button for better visual impact.
Another improvement to the UI may be to round the corners of the video.
There is an UI issue of the container being too large, may want to fit the video on the screen by resizing the dimensions of the video?
Other Issues
I found a bug where the video call doesn't work on Firefox but works on chromium browsers, we may want to look into this or add a note that it doesn't work on Firefox.
|
Main Changes
Integrate a video & audio functionality to replace the existing chat template. This is integrated using PeerJS and their online default server, we set the user Call ID and matched user Call ID to the following:
username + "-" + collabId
matchedUsername + "-" + collabId
(This is to make their ID unique and prevent random users using the same PeerJS server from joining. An alternative is that we can also host our own PeerJS server as a microservice?)
The video & audio functionality includes:
User/Activity Flow
When the user is redirected to the collaboration page, they will be prompted by the browser to allow access for webcam and microphone. They should be able to see themselves. Only after one of the user initiate call then will both user see one another. Each user has control over their own video & audio.
How to test?
If you only have a single webcam, you should see that both screens should show the same stream (aka see yourself)
If you happen to have an additional webcam, you can use two browsers, for example arc and chrome, set the default camera of each browser respectively and you should be able to see that the screen display different streams.
Additional Changes:
isValidToken
check within frontend'smiddleware.ts
Bug Fixes: