【问题标题】:Php Show Online Users with Pusher or socket.iophp 使用 Pusher 或 socket.io 显示在线用户
【发布时间】:2021-03-19 16:47:03
【问题描述】:
我有一个论坛页面。在唯一的索引页面上,我显示了一个显示用户名的在线用户列表。我使用推杆。它工作得很好。我有一个客户抱怨的问题。问题是当用户浏览到其他页面时,他/她的用户名会消失并再次出现。他/她与 Pusher 的连接在每次页面移动时都会丢失。我该如何处理这种情况?是否有其他解决方案来列出在线用户?我不想使用基于 AJAX 的经典解决方案。
【问题讨论】:
标签:
javascript
php
websocket
socket.io
pusher
【解决方案1】:
可以在Pusher Support page 上找到一个解决方案示例。他们建议您缓冲用户离线事件并在用户在短时间内重新加入时丢弃。提供的示例代码是:
function removeMember(member) {
pendingRemoves[ member.id ] = setTimeout(function() {
removeMemberFromUI(member);
}, 3000); // wait 3 seconds
};
function addMember(member) {
var pendingRemoveTimeout = pendingRemoves[member.id];
if(pendingRemoveTimeout) {
// user left, but has rejoined
clearTimeout(pendingRemoveTimeout);
}
}