web在线实时聊天(2) 用户聊天,统计在线用户

ixibei 发表于 分类:Php / laravel 阅读(2670) 评论(0)

简介:

上篇文章介绍了laravel5.1 广播事件的安装配置,本文将介绍如何实现用户聊天、以及统计在线用户数等一、实现用户聊天    1.1 修改app\Events\SomeEvent.php 中的bro…

上篇文章介绍了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(){ ....}); 借此代码可以将离线数进行统计



参考文章 

Node.js、Express、Socket.io 入门

结束语

本文有任何错误,或有任何疑问,欢迎留言说明。

本站文章除注明转载外,均为原创文章,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。

http://www.onephper.com/archive/34.html

相关推荐

评论

回复给XXX取消回复

说点什么吧...

网友最新评论

输入关键字