mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-11-26 13:59:23 +00:00
Start to process websocket messages
This commit is contained in:
parent
ba3dd74756
commit
a71c3f8a73
@ -3,6 +3,20 @@
|
|||||||
*
|
*
|
||||||
* @author Pierre HUBERT
|
* @author Pierre HUBERT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
class WsMessage {
|
||||||
|
constructor(info) {
|
||||||
|
this.title = info.title
|
||||||
|
this.id = info.id
|
||||||
|
this.data = info.data
|
||||||
|
}
|
||||||
|
|
||||||
|
get hasId() {
|
||||||
|
return this.id.length > 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class UserWebSocket {
|
class UserWebSocket {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -31,7 +45,7 @@ class UserWebSocket {
|
|||||||
|
|
||||||
// Handle incoming messages
|
// Handle incoming messages
|
||||||
this.ws.addEventListener("message", (e) => {
|
this.ws.addEventListener("message", (e) => {
|
||||||
this.ProcessMessage(JSON.parse(e.data));
|
this.ProcessMessage(new WsMessage(JSON.parse(e.data)));
|
||||||
})
|
})
|
||||||
|
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
@ -83,9 +97,36 @@ class UserWebSocket {
|
|||||||
/**
|
/**
|
||||||
* Process an incoming message
|
* Process an incoming message
|
||||||
*
|
*
|
||||||
* @param {any} msg The incoming message
|
* @param {WsMessage} msg The incoming message
|
||||||
*/
|
*/
|
||||||
static async ProcessMessage(msg) {
|
static async ProcessMessage(msg) {
|
||||||
console.error("WS message", msg)
|
|
||||||
|
// Check if the message is not associated if any request
|
||||||
|
if(!msg.hasId)
|
||||||
|
this.ProcessDetachedMessage(msg)
|
||||||
|
|
||||||
|
else
|
||||||
|
throw Error("Attached message to request are not supported yet!");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Process detached message
|
||||||
|
* @param {WsMessage} msg Incoming message
|
||||||
|
*/
|
||||||
|
static async ProcessDetachedMessage(msg) {
|
||||||
|
|
||||||
|
switch(msg.title) {
|
||||||
|
|
||||||
|
case "number_notifs":
|
||||||
|
SendEvent("newNumberNotifs", msg.data)
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "number_unread_conversations":
|
||||||
|
SendEvent("newNumberUnreadConvs", msg.data)
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -25,7 +25,7 @@ ComunicWeb.components.notifications.service = {
|
|||||||
*/
|
*/
|
||||||
init: async function(target, auto_hide, target_conversations){
|
init: async function(target, auto_hide, target_conversations){
|
||||||
|
|
||||||
processResponse = () => {
|
const processResponse = () => {
|
||||||
|
|
||||||
if(!target.isConnected || this.count_unread_notifications < 0 || this.count_unread_conv < 0)
|
if(!target.isConnected || this.count_unread_notifications < 0 || this.count_unread_conv < 0)
|
||||||
return;
|
return;
|
||||||
@ -74,6 +74,17 @@ ComunicWeb.components.notifications.service = {
|
|||||||
console.error("Could not get the number of unread notifications!")
|
console.error("Could not get the number of unread notifications!")
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Register to events
|
||||||
|
document.addEventListener("newNumberNotifs", e => {
|
||||||
|
this.count_unread_notifications = e.detail;
|
||||||
|
processResponse();
|
||||||
|
});
|
||||||
|
|
||||||
|
document.addEventListener("newNumberUnreadConvs", e => {
|
||||||
|
this.count_unread_conv = e.detail;
|
||||||
|
processResponse();
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user