49 lines
949 B
JavaScript
49 lines
949 B
JavaScript
/**
|
|
*
|
|
* @authors Tony.Deng (dengtongyu123@163.com)
|
|
* @date 2017-06-01 11:00:22
|
|
* @version $Id$
|
|
*/
|
|
|
|
|
|
module.exports = function(server) {
|
|
|
|
const io = require('socket.io')(server,{
|
|
origin:'*'
|
|
});
|
|
|
|
let onlineUsers = 0;
|
|
|
|
const chat = io.of('/chat').on('connection', function(socket){
|
|
|
|
console.log('a user connected');
|
|
|
|
socket.on('client_chat_message', function(data){
|
|
console.log(data);
|
|
chat.emit('broadcast_chat_message', data);
|
|
});
|
|
|
|
socket.on('client_get_online_users', function(data){
|
|
data.onlineUsers = onlineUsers;
|
|
console.log(data);
|
|
//单播
|
|
socket.emit('broadcast_online_users', data);
|
|
});
|
|
|
|
|
|
});
|
|
|
|
function getOnlineUsers() {
|
|
setTimeout(function(){
|
|
let clients = Object.keys(io.engine.clients).length;
|
|
if(onlineUsers != clients) {
|
|
onlineUsers = clients;
|
|
chat.emit('online_users_change', {onlineUsers:onlineUsers});
|
|
}
|
|
getOnlineUsers();
|
|
},1000);
|
|
}
|
|
|
|
getOnlineUsers();
|
|
|
|
} |