Skip to content

A virtual office! (learning project - learn Node.js, Websockets, etc.)

Notifications You must be signed in to change notification settings

FredericoCoelhoNunes/e-office

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

E-Office

A virtual environment to interact with your coworkers!

Requirements

  • Must use Firefox
  • Give permissions for the browser to access your microphone, when prompted!

General Architecture

  • Client uses:
    • WebRTC to connect to an audio relay server which follow an SFU (selective forwarding unit) architecture. This server decides what users to route which audio streams to (for example: only users in the same office area).
    • Phaser to render the office area and allow moving the user's avatar around.
    • Web Audio API to direct the audio coming from the server to the user's headphones, and to adjust the audio gains based on the distance to the other user's avatars.
    • socket.io to connect to the signalling server.
  • Server uses:
    • wrtc (which is a Node implementation of WebRTC) so it can be treated as a WebRTC peer, which facilitates the implementation of the relay functionalities.
    • socket.io to serve as a multipurpose server: for signalling (WebRTC) and for the users to communicate their positions, among other information.

Files

public/main.js is the entrypoint. Check class comments for brief descriptions of the difference objects and how they interact.

About

A virtual office! (learning project - learn Node.js, Websockets, etc.)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published