代码拉取完成,页面将自动刷新
同步操作将从 phachon/phaChat 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/**
* chat server
* @author phachon@163.com
*/
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);
app.use('/', express.static(__dirname + '/'));
//监听端口
server.listen(3001);
/**
* 记录所有的用户
* @type []
*/
var users = [];
/**
* 记录在线用户数
* @type {number}
*/
var onlineNumber = 0;
io.on('connection', function(socket) {
//用户加入
socket.on('join', function (userId) {
if(!users[userId]) {
users[userId] = {username: 'ss', img: ''};
onlineNumber += 1;
}
//广播在线总数
io.sockets.emit('onlineCount', onlineNumber);
//给自己广播当前所有在线用户
for(var userKey in users) {
socket.emit('userStatus', userKey);
}
//给除自己之外的用户广播状态
socket.broadcast.emit('userStatus', userId);
// socket.broadcast.to().emit('userStatus', userId);
console.log('用户' + userId + '加入了聊天');
});
//发送消息
socket.on('send', function(userId, message) {
console.log(message);
io.sockets.emit('show', userId, message);
});
//用户退出
socket.on('logout', function(userId) {
if(users[userId]) {
delete users[userId];
onlineNumber -= 1;
}
//除自己之外的所有用户
socket.broadcast.emit('onlineCount', onlineNumber);
//广播用户状态
socket.broadcast.emit('userStatus', userId);
console.log('用户'+ userId + '退出');
});
});
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。