【发布时间】:2017-07-17 06:53:13
【问题描述】:
我正在使用 Pusher 开发聊天应用程序。到目前为止,每当用户登录他的帐户时,他都会订阅如下频道:
`var channel = pusher.subscribe('<?='myChannel'.$_SESSION['USERID']?>');`
我想更新在线/离线聊天列表中的状态,以便其他用户可以知道用户是否在线。我该怎么做?
【问题讨论】:
标签: pusher
我正在使用 Pusher 开发聊天应用程序。到目前为止,每当用户登录他的帐户时,他都会订阅如下频道:
`var channel = pusher.subscribe('<?='myChannel'.$_SESSION['USERID']?>');`
我想更新在线/离线聊天列表中的状态,以便其他用户可以知道用户是否在线。我该怎么做?
【问题讨论】:
标签: pusher
通常你会为此使用presence channels。这些频道具有特殊事件,当会员订阅/取消订阅频道时,这些事件会广播给所有其他订阅者。
您似乎每个用户都有一个频道,因此仅将现有频道转换为在线频道是行不通的。相反,除了所有用户订阅的每个用户频道之外,您还可以拥有一个特殊的在线频道。在这里您可以绑定到出席事件并更新成员列表。
【讨论】:
var presenceChannel = pusher.subscribe('presence-myChannel'); var count = presenceChannel.members.count; 但现在我的计数为0。我怎样才能获得准确的计数和在线/离线状态?