上篇文章介绍了laravel5.1 广播事件的安装配置,本文将介绍如何实现用户聊天、以及统计在线用户数等
一、实现用户聊天
1.1 修改app\Events\SomeEvent.php 中的broadcastOn 方法
public $userId = '';
public function __construct($userId){
    $this->userId = $userId
}
public function broadcastOn()
{
     return ['test:'.$this->userId];
}      1.2 构造方法中我们传入用户的userId 作为这个用户的“频道” 即为 broadcaseOn方法中的 ['test:'.$this->userId]
    1.3 在模板中我们使用用户登陆id作为收听的频道
<script>
    var socket = io('http://www.op.com:3000');
    
    socket.on('connection', function (data) {
        console.log(data);
    });
    
    socket.on('test:{{ $userId }}:op', function(message){
        console.log(message);
    });
</script>    1.4 模板中的{{ $userId }} 即是要发送信息的那个用户 例如 test:88:op 其中88指的就是用户id 这样服务器就可以指定用户发送特定的信息 如果想做安全一点的话,则可以加密这个频道
    1.5 如果页面用户需要发送信息,则可以使用get 或者是post调用服务器的某个接口,实现web在线聊天
二、实时统计聊天在线用户
    2.1 在服务端js监听代码中加入一个变量 userLoginCount 然后将此值进行累加
2.2 socket.io 中除了监听连接外,还有一个监听离线的代码 socket.on('disconnect',function(){ ....}); 借此代码可以将离线数进行统计
参考文章
结束语
本文有任何错误,或有任何疑问,欢迎留言说明。
网友最新评论