// make router usable as it const router = window._router_; /* (1) Emergency channel ---------------------------------------------------------*/ window.wsc_emergency = wsc.channel('emergency').listen(function(msg, err){ /* (1) Manage error */ if( msg == null && err != null ) return infobox.show('Erreur de connexion WebSocket@emergency ('+err+')', 'error', 3000); /* (2) Manage wsclient error */ if( typeof msg.error != 'boolean' || msg.error !== false ) return infobox.show('Erreur de connexion WebSocket@emergency', 'warning', 3000); /* (3) If no message -> exit */ if( msg.data == null ) return; /* (4) Play sound if 1msg received + not already on page */ // note: 1msg means a new message but not the page load past buffer if( msg.data.length == 1 && router.app.$route.path != '/emergency' ) ( new Audio('https://notificationsounds.com/message-tones/communication-channel-519/download/mp3') ).play(); /* (5) Add messages to stack */ gstore.data.notif.emergency.data = gstore.data.notif.emergency.data.concat( msg.data ); /* (6) Add notification count if not already on page */ if( router.app.$route.path != '/emergency' ) gstore.data.notif.emergency.count += msg.data.length; /* (7) Remove loader */ gstore.data.msg_pending.emergency = false; }).send({name: _SERVER.session.name}); /* (2) Event channel ---------------------------------------------------------*/ window.wsc_event = wsc.channel('event').listen(function(msg, err){ /* (1) Manage error */ if( msg == null && err != null ) return infobox.show('Erreur de connexion WebSocket@event ('+err+')', 'error', 3000); /* (2) Manage wsclient error */ if( typeof msg.error != 'boolean' || msg.error !== false ) return infobox.show('Erreur de connexion WebSocket@event', 'warning', 3000); /* (3) If no message -> exit */ if( msg.data == null ) return; /* (4) Play sound if 1msg received + not already on page */ // note: 1msg means a new message but not the page load past buffer if( msg.data.length == 1 && router.app.$route.path != '/event' ) ( new Audio('https://notificationsounds.com/message-tones/communication-channel-519/download/mp3') ).play(); /* (5) Add messages to stack */ gstore.data.notif.event.data = gstore.data.notif.event.data.concat( msg.data ); /* (6) Add notification count if not already on page */ if( router.app.$route.path != '/event' ) gstore.data.notif.event.count += msg.data.length; /* (7) Remove loader */ gstore.data.msg_pending.event = false; }).send({name: _SERVER.session.name}); /* (3) Message channel ---------------------------------------------------------*/ window.wsc_chat = wsc.channel('chat').listen(function(msg, err){ /* (1) Manage error */ if( msg == null && err != null ) return infobox.show('Erreur de connexion WebSocket@chat ('+err+')', 'error', 3000); /* (2) Manage wsclient error */ if( typeof msg.error != 'boolean' || msg.error !== false ) return infobox.show('Erreur de connexion WebSocket@chat', 'warning', 3000); /* (3) If no message -> exit */ if( msg.msg == null ) return; /* (4) Play sound if 1msg received + not already on page */ // note: 1msg means a new message but not the page load past buffer if( msg.msg.length == 1 && router.app.$route.path != '/inbox' ) ( new Audio('https://notificationsounds.com/message-tones/communication-channel-519/download/mp3') ).play(); /* (5) Add messages to stack */ gstore.data.notif.inbox.data = gstore.data.notif.inbox.data.concat( msg.msg ); /* (6) Add notification count if not already on page */ if( router.app.$route.path != '/inbox' ) gstore.data.notif.inbox.count += msg.msg.length; /* (7) Remove loader */ gstore.data.msg_pending.inbox = false; }).send({name: _SERVER.session.name});