Frage

Ich benutze Faye Zum Versand von Nachrichten und es funktioniert gut. Aber ich möchte die aktiven Verbindungen für einen bestimmten Kanal abrufen, und die Dinge verhalten sich etwas anders: Siehe "Listen Sie aktive Abonnenten auf einem Kanal auf".

Ich möchte die Liste der aktuellen Benutzer zeigen, die in einem Raum chatten. Ich habe versucht, dies zu tun, indem ich das abfing /meta/subscribe Kanal über Erweiterungen Ich bin mir jedoch nicht ganz sicher, wie ich Daten wie den Benutzernamen an den Server senden soll.

Eine abgefangene Nachricht an /meta/subscribe sieht aus wie das:

{"channel"=>"/meta/subscribe", "clientId"=>"50k233b4smw8z7ux3npas1lva", "subscription"=>"/comments/new", "id"=>"2"}

Es wäre schön zu senden "username" => "foo".

Überwachung ist auch interessant, aber es sieht so aus, als ob ich keine spezifischen Daten vor dem Abbestellen senden kann.

Hat jemand Erfahrung mit solchen Problemen?

War es hilfreich?

Lösung

Sie können Daten mit einer clientseitigen Erweiterung anhängen:

client.addExtension({
  outgoing: function(message, callback) {
    if (message.channel === '/meta/subscribe') {
      message.ext = message.ext || {};
      message.ext.username = 'username';
    }
    callback(message);
  }
});

Diese Daten sind dann für Ihre serverseitige Erweiterung sichtbar. Bevor Sie dies jedoch implementieren, lesen Sie diesen Thread: https://groups.google.com/group/faye-users/msg/53ff678bcb726fc5

Andere Tipps

Haben Sie darüber nachgedacht, einen Kanal für regelmäßig zu erstellen, auf welchen Kanal ein Benutzer derzeit abonniert ist? Sie können es sich wie einen Herzschlag/Ping mit zusätzlichen Statusinformationen vorstellen, wie z. B. welchen Benutzer und der Kanal, den sie möglicherweise abonniert haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top