上篇文章介绍了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(){ ....}); 借此代码可以将离线数进行统计
参考文章
结束语
本文有任何错误,或有任何疑问,欢迎留言说明。
网友最新评论