Php 使用 Pusher 或 socket.io 显示在线用户

Php Show Online Users with Pusher or socket.io

我有一个论坛页面。在唯一的索引页面上,我显示了一个显示用户名的在线用户列表。我用推手。它很好用。我有一个客户抱怨的问题。问题是当用户浏览到其他页面时,his/her 用户名消失并再次出现。 His/her 每次页面移动时与 Pusher 的连接都会丢失。我该如何处理这种情况?是否有其他解决方案来列出在线用户?我不想使用经典的基于 AJAX 的解决方案。

可在 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);
  }
}