我有一个任务来显示网站上存在的在线用户列表。有人说我应该为此使用网络套接字。 我不知道该怎么实现。我已经安装了Pusher和Laravel Echo。您能指出正确的方向来帮助我吗?我想我应该听用户套接字连接的那一刻。
答案 0 :(得分:2)
阅读所有评论后,我想到了两种可能的解决方案:
这是非常简单的解决方案。您可以使用laravel notifications来实现特定的广播逻辑:
UserLogged[In|Out]
通知并将其广播到特定频道onlineUsers
列表(例如,在VueJs中,您可能要更新Vuex商店)但这可能需要更复杂的逻辑,您可能必须编写很多代码来保持在线用户列表的更新...我认为最好转到解决方案2 ...
我认为这是最好的方法,因为它不需要良好的Laravel-echo配置。对于本例,我正在使用Pusher(根据您的要求),但是可以使用所有Laravel广播驱动程序来实现此解决方案。
var chatRoom = Echo.join('my.chat.room.id');
members.count
方法保留频道用户的更新列表。setTimeout()
函数,您可以实时更新用户列表。我从未在生产环境中实现过此解决方案,而只是编写了一些代码来查看其工作原理。因此,我认为如果其他人有不同的观点或有更好的方法来解释此过程,我将很乐意更新我的答案。