wir haben kniffeliges Problem in der Produktion gefunden. Auf dem Frontend führen wir folgenden Code:Warum cometd Abonnement abmelden funktioniert nicht?
cometd.unsubscribe(subscription);
aber eigentlich diese Abmelde nicht geschieht.
Wir haben die folgende Konfiguration:
nginx
, zookepper
, 2 jetty
Knoten.
Wie Sie verstanden haben, verwenden wir Cometd als Web-Socket-Bibliothek.
- wir # 1 bis CHANNEL_1
- Stoppknoten # 1
- abmelden von Kanal_1
- abonnieren Sie channel_2
Voraussichtlich Knoten abonnieren:
Schritte Fehler zu reproduzieren Ergebnis:
wir haben Abonnement nur
tatsächliches Ergebnis chanel_2:
wir haben Abonnement Möglichkeiten chanel_1 und chanel_2 nur
Bitte teilen Sie die Ursache und Schritte zu beheben Problem zu verstehen.
P.S. In Server-Logs sehe ich nicht den Kanal abmelden, aber ich sehe es in ws-Frames im Browser P.S. Sieht aus wie _clientId
ändert sich nach dem Knoten erneut verbinden und wir können nicht abmelden mit neuen _clientId
. Sollten wir uns bei einem Rückruf abmelden?
Es tut mir leid. Ich war fehlerhaft, als ich die Frage schrieb. Wirklich übertrage ich das Abonnement, um die Methode abzubestellen. Und es funktioniert im Normalfall korrekt, aber es funktioniert nicht, wenn ich einen der Knoten herunterfahre. – gstackoverflow
Ihre Frage enthält nicht genügend Details, um zu verstehen, was Sie tun und was nicht. Sie können gerne ein Problem an https://github.com/cometd/cometd/issues zusammen mit einem reproduzierbaren Testfall senden. – sbordet