2016-05-18 14 views
0

Ich versuche einen Weg zu finden, um zu sehen, ob ein Benutzer online/verbunden ist, ohne seine SID zu kennen. Der einzige Weg, zu dem ich gekommen bin, ist, seine letzte Aktivitätszeit zu überprüfen. Wenn es einen Fehler zurückgibt, dann ist es online, wenn es Wert hat, dann ist es nicht online .... Ich bin mir nicht sicher, ob es andere Möglichkeiten gibt zu sehen, ob ein Benutzer online ist.Strophe.js sendIQ, damit die letzte Aktivität nicht funktioniert, Ejabberd

Muss ich bestimmte Dinge in Ejabberd einschalten?

Aber wenn ich einen IQ sende, funktioniert es auch nicht.

var iq = $iq({ 
      type: 'get', 
      id: 'last1', 
      to: "[email protected]" }) 
.c('query', {xmlns: 'jabber:iq:last'}); 
conn.sendIQ(iq); 

Edit: Ich fand heraus, dass die anfragende Einheit nicht zuletzt Aktivitätsinformationen abzurufen ist berechtigt, wie würde ich das erlauben ?? Ich bin der Admin

Antwort

0

Um letzte Aktivität Informationen Benutzer muss zu seiner/ihrer Dienstliste hinzugefügt werden. Nehmen wir an, A möchte die zuletzt gesehene Aktivität von B erhalten, dann muss A zu Bs Listen hinzugefügt werden.

Also, Sie müssen A und B der jeweils anderen Dienstliste hinzufügen, bevor Sie auf zuletzt gesehene Informationen zugreifen. Sie können Set Roster oder ejabberd ejabberdctl Admin-Tool verwenden, um in der Liste der Listen einander hinzuzufügen.

Und ich vermute, Sie haben bereits mod_last Modul in Ejabberd-Konfiguration aktiviert.