main/view/main.js

100 lines
3.4 KiB
JavaScript
Raw Normal View History

/* (1) Imports
---------------------------------------------------------*/
/* (1) NPM libs */
2017-11-28 12:37:49 +00:00
import Vue from 'vue'
/* (2) Internal libs */
2017-11-28 16:18:56 +00:00
import {API} from './lib/api-es6'
import {WSClient,WSClientBuilder} from './lib/ws-client-es6'
2017-11-28 12:37:49 +00:00
/* (3) Vues */
import wrapper_vue from './vue/wrapper.vue'
/* (2) Initialisation
---------------------------------------------------------*/
/* (1) API */
window.api = new API("http://ndli1718/api/v/1.0/");
/* (2) wsclient */
window.wsc = new WSClientBuilder("wss://websocket.xdrm.io");
/* (3) global store init */
require('./vue-config');
window.gstore.add('server', window._SERVER);
/* (4) Render view */
2017-11-28 12:37:49 +00:00
new Vue({
el: '#main-vue',
render: h => h(wrapper_vue),
data: {
gstore: window.gstore.data
}
2017-11-28 12:37:49 +00:00
})
/* (3) Set WebSocket channels
---------------------------------------------------------*/
/* (1) Connection channel */
window.wsc_connect = window.wsc.channel('connect').listen(function(msg, err){
// {1} Manage error //
if( msg == null && err != null ){
2017-12-04 13:53:16 +00:00
window.gstore.data.info.message = 'Erreur de connexion WebSocket@connect ('+err+')';
window.gstore.data.info.type = 'warning';
window.gstore.data.info.active = true;
setTimeout(function(){ window.gstore.data.info.active=false; }, 5000);
/*TEMP*/return;
/*TEMP*///msg = {error: 0, connected: ['guest123', 'guest456', 'guest789']};
}
// {2} Manage wsclient error //
if( msg.connected == null || msg.error == null || msg.error !== 0 ){
console.warn('websocket error: '+msg.error);
2017-12-04 13:53:16 +00:00
if( msg.error == null ) window.gstore.data.info.message = 'Erreur de connexion WebSocket@connect (Unknown Error)';
else window.gstore.data.info.message = 'Erreur de connexion WebSocket@connect ('+msg.error+')';
window.gstore.data.info.type = 'warning';
window.gstore.data.info.active = true;
setTimeout(function(){ window.gstore.data.info.active=false; }, 5000);
return;
}
// {3} Manage notification //
2017-12-04 13:59:36 +00:00
console.log('Detected '+msg.connected.length+' new user(s)');
window.gstore.data.notif[0].data = window.gstore.data.notif[0].data.concat( msg.connected );
}).send({name: window._SERVER.session.name});
/* (2) Message channel */
window.wsc_chat = window.wsc.channel('chat').listen(function(msg, err){
// {1} Manage error //
if( msg == null && err != null ){
2017-12-04 13:53:16 +00:00
window.gstore.data.info.message = 'Erreur de connexion WebSocket@connect ('+err+')';
window.gstore.data.info.type = 'warning';
window.gstore.data.info.active = true;
setTimeout(function(){ window.gstore.data.info.active=false; }, 5000);
/*TEMP*/return;
/*TEMP*///msg = {error: 0, msg: [['guest123', 'message 1'], ['guest456', 'message 2'], ['guest789', 'message 3']]};
}
// {2} Manage wsclient error //
if( msg.msg == null || msg.error == null || msg.error !== 0 ){
console.warn('websocket error: '+msg.error);
2017-12-04 13:53:16 +00:00
if( msg.error == null ) window.gstore.data.info.message = 'Erreur de connexion WebSocket@connect (Unknown Error)';
else window.gstore.data.info.message = 'Erreur de connexion WebSocket@connect ('+msg.error+')';
window.gstore.data.info.type = 'warning';
window.gstore.data.info.active = true;
setTimeout(function(){ window.gstore.data.info.active=false; }, 5000);
return;
}
// {3} Manage notification //
2017-12-04 13:59:36 +00:00
console.log('Received '+msg.msg.length+' new message(s)');
window.gstore.data.notif[1].data = window.gstore.data.notif[1].data.concat( msg.msg );
}).send({name: window._SERVER.session.name});