Feature: Connection quality indicator
This update will add a connection quality indicator at the header of the landing page. It will check if:
- The connection to the server is established
- The localstorage is writable
- The sessionstorage is writable
- The connection speed is fast enough
The connection speed is determined as following:
- The client saves the start time for later use
- The client calls a server side method requesting to add a document to a new ConnectionStatusCollection
- The server adds the document
- Meteor synchronizes the inserted document with the client's Minimongo DB
- The observeChanges method fires the added event on the client side
- The client calculates the difference between the start time and the end time
- The client removes the document from the Minimongo DB
- Meteor again syncs the collection content with the server
Point 7) and 8) are not included in the RTT calculation. The process is repeated 30 times by default and generates a quite accurate average round trip time.
The user will see a grey bar at the top while the quality is tested. If everything is ok the bar will change green. If the average RTT is higher than 10 ms the bar will get orange. If the RTT is higher than 20 ms or the localstorage is not writable or the sessionstorage is not writable or there is not connection to the server at all the bar will get red.
If everything is alright the green bar will disappear after a few seconds. The normal workflow is not interrupted anyway so the user can enter a session name and create / join one just as before.
In the indicator bar there is a link "Details" which will open a splashscreen containing status information about the current progress.
Note when merging to staging
Since the "usual" RTT to the staging / master server is not known and the servers do not respond to an ICMP echo we maybe need to adjust the 10 ms / 20 ms of the RTT calculation. So we need to have a look at the values as soon as this request is merged.
Fixed issues
- Fixes #80 (closed)