Added websockets: connection tracker, chat messenger to VueJS
This commit is contained in:
parent
b66bafb3c3
commit
e81817b819
|
@ -25,7 +25,9 @@
|
||||||
|
|
||||||
echo "window._SERVER = ".json_encode([
|
echo "window._SERVER = ".json_encode([
|
||||||
|
|
||||||
'a' => [1, 2]
|
'session' => [
|
||||||
|
'name' => $_SESSION['NAME']
|
||||||
|
]
|
||||||
|
|
||||||
])."\n";
|
])."\n";
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,12 @@
|
||||||
|
|
||||||
/* (1) Start session */
|
/* (1) Start session */
|
||||||
session_start();
|
session_start();
|
||||||
// $_SESSION['PERM'] = ['journalist'];
|
if( count($_SESSION['USER']) > 0 )
|
||||||
|
$_SESSION['NAME'] = $_SESSION['USER']['username'];
|
||||||
|
elseif( count($_SESSION['ADMIN']) > 0 )
|
||||||
|
$_SESSION['NAME'] = $_SESSION['ADMIN']['username'];
|
||||||
|
elseif( !isset($_SESSION['NAME']) || strlen($_SESSION['NAME']) == 0 )
|
||||||
|
$_SESSION['NAME'] = 'guest'.uniqid();
|
||||||
|
|
||||||
/* (2) Set default Driver for Repos */
|
/* (2) Set default Driver for Repos */
|
||||||
Repo::setDriver(DatabaseDriver::get());
|
Repo::setDriver(DatabaseDriver::get());
|
||||||
|
|
47
view/main.js
47
view/main.js
|
@ -31,3 +31,50 @@ new Vue({
|
||||||
gstore: window.gstore.data
|
gstore: window.gstore.data
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* (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 ){
|
||||||
|
console.warn(err);
|
||||||
|
/*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);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// {3} Manage notification //
|
||||||
|
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 ){
|
||||||
|
console.warn(err);
|
||||||
|
/*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);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// {3} Manage notification //
|
||||||
|
window.gstore.data.notif[1].data = window.gstore.data.notif[1].data.concat( msg.msg );
|
||||||
|
|
||||||
|
}).send({name: window._SERVER.session.name});
|
|
@ -11,7 +11,7 @@ window.gstore.add('info', {
|
||||||
});
|
});
|
||||||
window.gstore.add('notif', [
|
window.gstore.add('notif', [
|
||||||
{ class: 'bell', data: ['guest1224934 connected', 'guest2349329042 connected'] },
|
{ class: 'bell', data: ['guest1224934 connected', 'guest2349329042 connected'] },
|
||||||
{ class: 'message', data: ['guestsdfljd: \"blabla bloblo\"'] },
|
{ class: 'message', data: [['guestsdfljd, \"blabla bloblo\"']] },
|
||||||
{ class: 'search', data: [] },
|
{ class: 'search', data: [] },
|
||||||
{ class: 'menu', data: [] }
|
{ class: 'menu', data: [] }
|
||||||
])
|
])
|
||||||
|
|
Loading…
Reference in New Issue