MeshCentral is an open source web based remote computer management web site. MeshCentral offers web based remote desktop, terminal and file transfer allowing administrators to access and remotely manage computers on the local network or over the Internet. So far, we had to relay the traffic from the user’s browser thru the server to the mesh agent on the remote computer creating a lot of traffic on the server which slows down the connections and adds to server workload and hosting costs.
To go a long way to solving the traffic relay thru the server problem, last week the latest version of MeshCentral2 was published with WebRTC support turned on by default. This feature is in large part due to many longs days and late night coding sessions by Bryan Roe who worked on fixing and updating BCP’s WebRTC data stack for this usage. With this new version, the Browser and Mesh Agent will attempt to communicate directly to each other using WebRTC bypassing the server entirely. If successful, the remote desktop and terminal session are faster, lower-latency and make the server more scalable than ever before.
Some more technical details: The browser and mesh agent always start by communicating over web sockets thru the server. We use binary data on web socket to start the session going, but use text data to send WebRTC negotiation. So both session data and WebRTC setup flow over the same server relay with minimal overhead. If WebRTC is successful, we then send a set of control messages to cleanly switch over from the web socket to the WebRTC channel. All this happens in the blink of an eye and allows us to never have to use dreaded TURN servers (which are difficult to setup).
The result of all this is fully automatic traffic optimization, better session quality and improved server scaling. Users don’t needs to do anything new except update to the latest MeshCentral2 server. Everything is completely automatic. Our own WebRTC stack is built into all variants of Windows and Linux agents, works with Chrome and Firefox.
We the latest MeshCentral2, browsers and agents can communicate both over web socket
relayed thru the server or when possible, using WebRTC directly – without server relay.
MeshCentral2 uses a unique connection setup. Starting up with Web Socket thru the server then
switching over to WebRTC when possible using Web Socket text data for WebRTC control & setup.
No need for a WebRTC TURN server, simplify server installation.