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

/**
 * 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>
相关文章
相关标签/搜索