mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-12-24 18:08:50 +00:00
Start to process websocket messages
This commit is contained in:
parent
ba3dd74756
commit
a71c3f8a73
@ -3,6 +3,20 @@
|
||||
*
|
||||
* @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 {
|
||||
|
||||
/**
|
||||
@ -31,7 +45,7 @@ class UserWebSocket {
|
||||
|
||||
// Handle incoming messages
|
||||
this.ws.addEventListener("message", (e) => {
|
||||
this.ProcessMessage(JSON.parse(e.data));
|
||||
this.ProcessMessage(new WsMessage(JSON.parse(e.data)));
|
||||
})
|
||||
|
||||
} catch(e) {
|
||||
@ -83,9 +97,36 @@ class UserWebSocket {
|
||||
/**
|
||||
* Process an incoming message
|
||||
*
|
||||
* @param {any} msg The incoming message
|
||||
* @param {WsMessage} msg The incoming message
|
||||
*/
|
||||
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){
|
||||
|
||||
processResponse = () => {
|
||||
const processResponse = () => {
|
||||
|
||||
if(!target.isConnected || this.count_unread_notifications < 0 || this.count_unread_conv < 0)
|
||||
return;
|
||||
@ -74,6 +74,17 @@ ComunicWeb.components.notifications.service = {
|
||||
console.error("Could not get the number of unread notifications!")
|
||||
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