Wenn eine Anwendung bereits WebSocket
für Live-Feeds geöffnet hat , sollte ich sie AJAX
für die andere Kommunikation mit dem Server verwenden?
Da die Verbindung bereits geöffnet ist, sollten wir sie für Anfragen verwenden, die Request/Response
nicht in Echtzeit sind?
Ich bevorzuge RESTful HTTP
Anfragen, weil ich sie leichter zu debuggen finde. Sie können einen Browser mit URLs oder Locken verwenden, um zu testen, was die API zurückgibt. Sie müssen keinen Code schreiben, um a zu öffnen WebSocket
.
Wäre es komisch RESTful HTTP API
und WebSocket
in der gleichen Anwendung zu haben?
rest
ajax
websockets
Marc
quelle
quelle
Antworten:
Eines der Hauptentwurfsziele von Websockets besteht darin, dass HTTP- und Websocket-Protokolle über denselben Port übertragen werden können. Dies wird dadurch erreicht, dass ein Client explizit einen Websocket-Handshake mit einer HTTP-Upgrade-Anforderung ausführen muss. Auf diese Weise kann der Server eine Standard-HTTP-Anforderungsverbindung sowie eine HTTP-Aktualisierungsanforderung verarbeiten, die jetzt auf eine dauerhafte bidirektionale Duplexverbindung aktualisiert wird.
Also ja, dies ist definitiv ein gültiger Anwendungsfall, aber ob Sie dies für Ihre spezifische Anwendung tun SOLLTEN, ist eine ganz andere Sache. Websockets sind nützlich und sinnvoll, wenn Sie Szenarien haben, in denen der Server nicht angeforderte Daten an den Client senden kann (Live-Feeds). HTTP-Protokoll- und REST-Dienste sind nützlich, wenn Sie die synchrone Clientanforderung von Daten blockieren möchten.
Wenn Ihre Anforderungen so sind, dass beide für Ihre Anwendung sinnvoll sind, sollten Sie auf jeden Fall beide verwenden. Wenn Ihre einzige Interaktion mit dem Server jedoch auf Live-Feeds basiert, sind REST-Services nicht geeignet. Ich denke, die Einfachheit des Debuggens sollte in Bezug auf die Systemqualitätsattribute , auf die Sie Ihr Design ausrichten sollten, eine eher geringe Bedeutung haben .
quelle