直播平台在线人数功能

最近在做直播平台,需要实现在线人数的显示
在线观看直播的人数使用websocket感觉很好,当有人进入直播平台,后台触发人数加1,当有人退出平台例如关闭浏览器,后台会触发断开连接方法,人数减1。
使用socket.io

1.websocket服务端

1)引入包

var app = require('http').createServer()
var io = require('socket.io')(app)

2)定义在线人数的全局变量

var count = 0

3)设置websocket服务端口

app.listen(5000)

4)开启

io.on('connection', function(socket) {

5)当有人进入页面,就会与websocket服务器建立通信
就会触发人数加1

    count++;
    console.log("当前接入" + count + "人")

6)我们人数发送给订阅了”users“的客户端

socket.emit('users', { peoNum: count })
//当有数据改变时,会自动将人数广播到订阅users的客户端
socket.broadcast.emit('users', { peoNum: count });

7)当有人断开连接,就会触发断开方法,人数减1

    socket.on('disconnect', function() {
        --count;
        console.log("当前接入" + count + "人")
        socket.broadcast.emit('users', { peoNum: count });
    });
})
直播平台在线人数功能_第1张图片
图片.png

2.websocket客户端

1)引入包


2)人数显示

当前在线人数:

3)连接websocket服务器,订阅users信息,当接收到服务端广播的人数信息,就会将其显示到页面

var socket = io('localhost:5000')
socket.on('users', function(data) {
        console.log(data)
        document.getElementById('allpeople').innerHTML = data.peoNum
        socket.on('disconnect', function() {
            console.log("与服务断开");
        });
    })
直播平台在线人数功能_第2张图片
图片.png

你可能感兴趣的:(直播平台在线人数功能)