简体   繁体   English

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

[英]Php Show Online Users with Pusher or socket.io

I have a forum page.我有一个论坛页面。 On the only index page, I show an online user list that shows usernames.在唯一的索引页面上,我显示了一个显示用户名的在线用户列表。 I use Pusher.我使用推杆。 It works great.它工作得很好。 I have a problem about which my customer is complaining.我有一个客户抱怨的问题。 The problem is that when a user browses to other pages, his/her username disappears and re-appears again.问题是当用户浏览到其他页面时,他/她的用户名会消失并再次出现。 His/her connection to Pusher is lost on every page move.他/她与 Pusher 的连接在每次页面移动时都会丢失。 How can I handle this situation?我该如何处理这种情况? Is there any other solution to list online users?是否有其他解决方案来列出在线用户? I don't want to use a classic AJAX-based solution.我不想使用经典的基于 AJAX 的解决方案。

An example solution for this can be found on the Pusher Support page .可以在Pusher 支持页面上找到一个示例解决方案。 They suggest you buffer user offline events and discard if the user rejoins after a short amount of time.他们建议您缓冲用户离线事件并在用户在短时间内重新加入时丢弃。 The example code provided is:提供的示例代码是:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM