Hiiiii
wenn ich angeschrieben werde, wird die Anzahl der vorhandenen Nachrichten nicht korrekt angezeigt.
Beispiel:
Habe vom Nutzer lediglich eine Nachricht bekommen, angezeigt wird folgendes:
Manchmal wird eine 3 angezeigt, manchmal eine 5 und nun die hübsche 8
Das hängt damit zusammen, wie das Protokoll arbeitet - Dies kann auch aktuell nur im Applet reproduziert werden da kein anderer Client multiple Channel ermöglicht. Knuddels war zu beginn nicht für Multichannelhandling ausgelegt und die Folgen von der Einbindung dessen bekommst du da zu spüren. ;)
Befindest du dich in 4 Channel und der Nutzer ist in keinem Comchan (common Channel/gleicher Channel) wird dir die private Nachricht an jedes bestehende Channelfenster geschickt, da es für jedes Channelfenster eine Serververbindung aufgebaut wird. (Ressourcen? Ach drauf geschissen - take it all!)
- Du
- Channel 1
- Channel 2
- Channel 3
- Channel 4
- Andere Person
- Channel 5 => /p Du:Hallo Welt.
Das gleiche passiert auch wenn:
- Du
- Channel 1
- Channel 2
- Channel 3
- Channel 4
- Andere Person
- Channel 1
- Channel 5 => /p Du:Hallo Welt.
Das ganze anhand von Beispielen zu erklären sollte helfen.
Der Counter stimmt. Du bekommst die Nachricht 4x wenn es 4 öffentliche Channel sind. Sind es nur 3 öffentliche, bekommst du 3 und im ?-Channel wird sie nicht empfangen. Hat die Person den Messenger aktiv, erhältst du sie wiederum 4x... - Wenn die Nachricht binnen einer "kurzen Zeitspanne" erhalten werden, siehst du sie nur einmalig im PP Fenster, sollten die Latenz aber zu hoch sein, kann es passieren, dass die Nachricht mehrfach im /pp Fenster auftaucht.
Dazu gibt es sogar noch ein anderes "Phänomen" das doppelte Nachrichten bei "erneutem" öffnen des /pp Fensters nicht mehr angezeigt werden.
(Erster Account)
/p [NICK]:Hallo.
5 min warten...
/p [NICK]:Hallo.
(Zweiter Account)
/pp [SENDER]
Das Protokoll ist einfach Rotz. Es gibt keine Status-Verbindung auf der Private Nachrichten oder Notifikationen/Informationsupdates übetragen werden. - Du erhältst für jedes geöffnete Channelfenster die selben Information. Datensparsamkeit ist ein Fremdwort.
So sollte das Protokoll arbeiten:
- Serververbindung
- Multiple Channelbeitritte/Verlassen
- Öffentliche Nachrichtenübermittlung mit Zielangabe
- Private Nachrichten
- Private Nachrichtenübermittlung mit Zielangabe
- Statusupdates
- Anwendungen wie Freundesliste etc.
So arbeitet es:
- Channelbeitritt/verlassen = Serververbindung
- Öffentliche Nachrichtenübermittlung mit Zielangabe
- Private Nachrichtenübermittlung mit Zielangabe basierend auf Channelverbindung
- Statusupdates werden für jedes Fenster empfangen und gesendet...
- Anwendungen wie Freundesliste etc. werden für jedes Fenster empfangen und gesendet...
Am besten selbst prüfen kannst du dies mit den Spielechannel wie Poker, diese werden sogar unabhängig von der öffentlichen Texteingabe behandelt.
Betritt dafür einen dieser Spielechannel und unterhalte dich in einem anderen Channel einfach weiterhin öffentlich oder privat, du fliegst irgendwann (wegen Inaktivität) aus dem Spielechannel raus obwohl du doch aktiv in einem anderen Channel schreibst.
Sodele~