Ich habe einen Websocket Server mit den typischen onX
Funktionen in seinem Protokoll. Mein Problem ist, dass ich keinen Weg finde, onX
zu beenden, während ich weiter die verschiedenen Sachen mache, die ich machen wollte, als die spezifische Nachricht eintraf. Genauer gesagt, führe ich manchmal in meiner Funktion onMessage
eine HTTP-Anfrage an eine API aus, die sehr langsam ist. Daher wird der Client, der die Websocket-Nachricht gesendet hat, durch die onMessage
-Finalisierung des Servers blockiert. Selbst wenn ich self.sendMessage
oder reactor.callFromThread(<http request here>)
oder self.transport.loseConnection()
von der Serverseite aus im onMessage
-Block verwende, führt% code_de% immer noch die HTTP-Anfrage aus und mein Client wartet.
Dies ist der Code meines Kunden:
%Vor% Ich habe sogar versucht, nur onMessage
, vom Client, aber aus irgendeinem Grund sendet es nicht die Daten (ich sehe nicht, dass sie auf dem Server ankommen). Ich verstehe nicht, wie ich vom Block websocket.send(data)
zurückkehren und meine HTTP-Anfrage weitermachen kann.
Und um meine Situation zu erklären, möchte ich einfach 1 ss Websocket-Nachricht an meinen Server senden und sofort die Verbindung schließen. Alles, was das kann, passt zu mir.