2017-07-17 2 views
0

Ich entwickle Chat-Anwendung mit Pusher. Ab sofort, wenn Benutzer anmeldet auf sein Konto, er auf einen Kanal wie unten gezeichnet wird:So erhalten Sie Online-Benutzer mit Pusher

`var channel = pusher.subscribe('<?='myChannel'.$_SESSION['USERID']?>');` 

würde Ich mag den Status in der Chat-Liste aktualisieren für online/offline, so dass andere Benutzer kennen lernen, ob Benutzer ist online oder nicht. Wie kann ich das machen?

Antwort

0

Normalerweise würden Sie hierfür presence channels verwenden. Diese Kanäle haben spezielle Ereignisse, die an alle anderen Abonnenten gesendet werden, wenn ein Mitglied den Kanal abonniert/abmeldet.

Es sieht so aus, als ob Sie einen Kanal pro Benutzer haben. Dies würde nicht funktionieren, wenn Sie einfach die vorhandenen Kanäle in Presence-Kanäle umwandeln. Stattdessen können Sie zusätzlich zu den von allen Benutzern abonnierten Benutzerkanälen einen speziellen Anwesenheitskanal verwenden. Hier können Sie an Anwesenheitsereignisse binden und die Mitgliederliste aktualisieren.

+0

Ja, ich habe das gleiche getan. Ich benutzte den Präsenzkanal als 'var presenceChannel = pushersubscribe ('Präsenz-myChannel'); var count = presenceChannel.members.count; ' Aber jetzt werde ich als 0 gezählt. Wie kann ich die genaue Anzahl und den Online/Offline Status bekommen? –

+0

Sie könnten die Zählung zu früh bekommen. Sie sollten warten, bis das Abonnement erfolgreich war. Es gibt ein Beispiel dafür, wie [hier] (https://pusher.com/docs/client_api_guide/client_presence_channels#example-1) ausgeführt werden kann. –