Der clientseitige Teil meiner Anwendung muss WebSocket-Nachrichten in strikter Reihenfolge verarbeiten. Leider wird jede Nachricht ziemlich lange verarbeitet (etwa 3 Sekunden), so dass eine weitere Nachricht erscheint, bevor die erste beendet wird. Nach ein paar Nachrichten ist die Reihenfolge völlig anders. Wie man dieses Problem in JavaScript löst.
Ich habe über eine Aufgabenwarteschlange nachgedacht, aber ich weiß nicht, wie ich sie implementieren kann, um die GUI meiner Web-App nicht zu blockieren.
Ich denke, die andere Antwort ist falsch. WebSocket IS TCP, dh die Reihenfolge der Lieferung ist garantiert . Wie @ Maël Nison zitiert, siehe RFC6455 :
Nachrichtenfragmente MÜSSEN dem Empfänger in der vom Absender gesendeten Reihenfolge zugestellt werden
Sie können also davon ausgehen, dass Ihre Verarbeitung in der Reihenfolge beginnen wird. Wenn Sie jedoch viele Async-Callbacks haben, kann eine spätere Verarbeitung enden , bevor ein früheres noch läuft. Aber das ist einfach eine falsche Implementierung (und ein bisschen Callback-Hölle).
Ähnliche Beiträge:
Tags und Links javascript websocket javascript-events order