直播平台在线人数功能

时间:2022-07-23
本文章向大家介绍直播平台在线人数功能,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

最近在做直播平台,需要实现在线人数的显示 在线观看直播的人数使用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 });
    });
})
图片.png

2.websocket客户端

1)引入包

<script src="http://cdn.bootcss.com/socket.io/2.0.3/socket.io.js"></script>

2)人数显示

<h3>当前在线人数:<span id="allpeople"></span> </h3>

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("与服务断开");
        });
    })
图片.png