/** * * @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(); }