feat: 'new websocket' to share whiteboard info

* share whiteboard info only on change and at specific frequency
* front update to track nb user connected
This commit is contained in:
Florent Chehab
2020-05-10 15:34:19 +02:00
parent 6475fdd5db
commit 685caffd43
6 changed files with 109 additions and 4 deletions

View File

@@ -253,6 +253,7 @@
<div id="whiteboardInfoContainer">
<p><b>Whiteboard information:</b></p>
<p># connected users: <i id="connectedUsersCount">0</i></p>
<p># msg. sent to server: <i id="messageSentCount">0</i></p>
<p># msg. received from server: <i id="messageReceivedCount">0</i></p>
</div>

View File

@@ -49,6 +49,10 @@ function main() {
signaling_socket.on("connect", function () {
console.log("Websocket connected!");
signaling_socket.on("whiteboardInfoUpdate", (info) => {
InfoService.updateInfoFromServer(info);
});
signaling_socket.on("drawToWhiteboard", function (content) {
whiteboard.handleEventsAndData(content, true);
InfoService.incrementNbMessagesReceived();

View File

@@ -12,6 +12,14 @@ class InfoService {
*/
_infoAreDisplayed = false;
/**
* Holds the number of user connected to the server
*
* @type {number}
* @private
*/
_nbConnectedUsers = 0;
/**
* @type {number}
* @private
@@ -31,6 +39,13 @@ class InfoService {
*/
_refreshInfoIntervalId = undefined;
/**
* @param {number} nbConnectedUsers
*/
updateInfoFromServer({ nbConnectedUsers }) {
this._nbConnectedUsers = nbConnectedUsers;
}
incrementNbMessagesReceived() {
this._nbMessagesReceived++;
}
@@ -42,6 +57,7 @@ class InfoService {
refreshDisplayedInfo() {
$("#messageReceivedCount")[0].innerText = String(this._nbMessagesReceived);
$("#messageSentCount")[0].innerText = String(this._nbMessagesSent);
$("#connectedUsersCount")[0].innerText = String(this._nbConnectedUsers);
}
displayInfo() {