您的位置:首页 > Web前端 > Node.js

socket.io 实现简单的用户连接计数

2014-02-19 11:31 639 查看
/**
* socket.io
* 实现简单的打开浏览器/关闭浏览器记录信息
*/
var http = require('http'), // 加载http模块
fs = require('fs'), // 加载fs模块
count = 0; // 计数
// 创建web服务器
var server = http.createServer(function (req, res) {
// 读取index.html
fs.readFile('./index.html', function(error, data) {
// 发送头信息
res.writeHead(200, {'Content-type': 'text/html;charset=utf-8'});
// 输出index.html的内容到客户端
res.end(data, 'utf-8');
});
}).listen(3000); // 运行在3000端口上
// 打印运行日志信息
console.log('Server running!');
// 加载socket.io模块,绑定到已经创建的server
var ios = require('socket.io').listen(server);
// 监听 connection 事件
ios.sockets.on('connection', function(socket) {
console.log("用户登录了");
// 用户打开连接 count++
count++;
// 打开新的连接显示的内容
socket.emit('users', {number: count});
// 显示数据到已经打开的连接上
socket.broadcast.emit('users', {number: count});
// 监听 disconnection 事件
socket.on('disconnect', function() {
//用户关闭count--
count--;
console.log("用户退出了");
// 显示数据到已经打开的连接上
socket.broadcast.emit('users', {number: count});
})
});
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>Socket.IO Example</h1>
<h2 id="msg" style="color: red;"></h2>
<script src="/socket.io/socket.io.js"></script>
<script src="http://uil.fanna.com.cn/jquery/jquery-1.7.1.min.js" type="text/javascript"></script>
<script>
var socket = io.connect("http://127.0.0.1:3000");
socket.on('users', function(data) {
$('#msg').html(("当前有" + data.number+"个用户登录"));
})
</script>
</body>
</html>


附件:http://down.51cto.com/data/2364074
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息