html5在线聊天服务端

上节光说了个客户端,下面上服务端的源码

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){



	res.send('<h1>game hahaha</h1>');


});

//在线用户
var onlineUsers = {};
//当前在线人数
var onlineCount = 0;




io.on('connection', function(socket){
	console.log('a user connected');
	
	//监听新用户加入
	socket.on('login', function(obj){
		//将新加入用户的唯一标识当作socket的名称,后面退出的时候会用到
		socket.name = obj.name;
		
		//检查在线列表,如果不在里面就加入
		if(!onlineUsers.hasOwnProperty(obj.name)) {
			onlineUsers[obj.name] = obj.name;


			//在线人数+1
			onlineCount++;
		}
		
		//向所有客户端广播用户加入
		io.emit('login', {onlineUsers:onlineUsers, onlineCount:onlineCount});
		console.log(obj.name+'加入了游戲');
	});
	
	//监听用户退出
	socket.on('disconnect', function(){
		//将退出的用户从在线列表中删除
		if(onlineUsers.hasOwnProperty(socket.name)) {
			//退出用户的信息
			var lsm=socket.name;
			//删除
			delete onlineUsers[socket.name];
			//在线人数-1
			onlineCount--;


			//向所有客户端广播用户退出
			io.emit('logout', {onlineUsers:onlineUsers, onlineCount:onlineCount});
			console.log(lsm+'退出了游戲');
		}
	});
	
	//监听用户发送tank信息
	socket.on('ms', function(obj){
		//向所有客户端广播发布的消息

		io.emit('msg', obj);

	});
  
});

http.listen(18081, function(){
	console.log('游戏服务器启动 *:18080');
});

这是个经典的node.js服务端,我也是仿照这个写的,出处忘了抱歉!注意端口客户端和服务端一定要写一致否则无法使用。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值