user.isAway() liefert falschen return [BTS] #0016638

Issue #148 new
ddvoid created an issue

Wenn man per isAway() prüft, ob ein User gerade Away ist oder nicht, liefert die Funktion in einigen Fällen ein true - obwohl der user garnicht (mehr) away ist.

Man kann den Fehler zumindest temporär leicht beheben, indem User kurz /away geht & dann die Funktion /back nutzt. Danach klappt es (zumindest bisher) immer wieder richtig.

Comments (9)

  1. Adrian Preuss

    Das ganze ist nicht nur beim Away.

    Auch isEventModerator() sowie isVideoStreaming() liefert genauso falsche Werte, anscheinend ein grundlegendes Synchronisierungsproblem. Das Video-Streaming scheint überhaupt nicht zu funktionieren, es wird immer ein "false" zurückgegeben.

  2. Son_of_a_Glitch

    Viele der Blockaden treten bei Multichannel Nutzung auf, wenn man /away in Channel 1 Nutzt, wird man in Channel 2 korrekt als /away gesetzt, sollte man aber /back in Channel 1 nutzen, bleibt man in Channel 2 /away für die UserApps bis zum neubetreten des Channels oder bis man dort ebenfalls /back schreibt..

  3. Son_of_a_Glitch

    Das was ddvoid beschreibt tritt vorzugsweise nach diesen Schritten auf: /away => disconnect durch timeout => reconnect Für die Userapps ist man nach wie vor /away, selbst /back ändert dies nicht. Erst nach erneutem setzen von /away und /back wird der Wert korrekt gewertet.

  4. Oliver Widmann

    Dieses Ticket wurde an die Entwickler weitergegeben. Ebenfalls wurde auch isEventModerator() und isVideoStreaming() ins BTS aufgenommen.

  5. Frederic Leitenberger (privat)

    Ich habe die Verarbeitung der away events (away + back) nochmals überprüft, es scheint alles korrekt zu sein. Dennoch habe ich daran etwas vereinfacht, aber ich glaube nicht, dass dies die Probleme behebt; zumal ja auch noch andere Felder betroffen sind. Die Änderungen gehen mit dem nächsten ChatServer-Update live.

    Aktuell geht meine Vermutung in die Richtung, dass das Problem beim Übermitteln oder Verarbeiten der Change-Events auf AppServer-Seite liegt. Ich werde mir dies bei Zeiten nochmals anschauen.

    Guten Rutsch ins neue Jahr!

  6. Frederic Leitenberger (privat)

    Ich habe die isStreamingVideo() Methoden nochmal genau untersucht und auch dort keine Fehler finden können. Ich muss es nochmal genauer untersuchen.

    Als kleine Verbesserung habe ich das hier eingebaut: User.isAway() und User.isStreamingVideo() können nun nur noch true liefern, wenn der User online ist. Dazu ist ein AppServer-Update nötig, welches ich erst nächste Woche machen werde.

  7. Log in to comment