2016-08-02 19 views
0

Ich werde einen Nodejs-Server für eine mobile App bereitstellen, in der mobilen App verwende ich Websocket, um mit dem Server zu kommunizieren.Websocket oder Http, um eine mobile App zu entwickeln?

Ich möchte wissen, ob ich aufhören kann, die http zu verwenden, aber nur die Websocket verwenden? Was sind die Vor- und Nachteile dieser Lösung?

Antwort

1

Ich möchte wissen, ob ich aufhören kann, das http zu verwenden, aber nur den Websocket verwenden?

Nein, nicht 100%. Weil Sie mindestens einen Websocket-Handshake über HTTP durchführen müssen. Wenn Sie Web-Entwicklung (d. H. Browser-Entwicklung) machen, müssen Sie auch eine HTML/JavaScript-Datei (en) für die Hauptseite bereitstellen. Anders als dass es vollständig möglich ist, zu den Webschächten vollständig zu wechseln.

Was sind die Vor- und Nachteile dieser Lösung?

Vorteile

  • Echt Server-Push (Sie leicht Kunden benachrichtigen können)
  • Mit einem geeigneten Protokoll, das auf (zB JSON-RPC) ist äußerst effizient im Vergleich zu HTTP

Nachteile

  • Es ist ziemlich viel TCP, also müssen Sie noch ein benutzerdefiniertes Protokoll darüber aufbauen. Dies könnte tatsächlich schwierig zu implementieren sein. Vor allem, wenn Sie Textinhalt (z. B. JSON) mit Binärinhalt (z. B. Bilder) mischen möchten. Es kann sich herausstellen, dass Sie HTTP über Websockets neu implementieren werden.
  • könnte schwierig sein, gut zu skalieren (wieder auf dem oberen Protokoll abhängig)
  • Poorly im Vergleich zu verstehen HTTP
  • noch recht neu, nicht so viele Werkzeuge wie für HTTP

So wie Sie können Die meisten Sorgen kommen von Tatsachen, dass es neu ist und Sie viel manuelle Arbeit damit machen müssen. Davon abgesehen ist es meine persönliche Meinung, darauf einzugehen. Wenn du es nicht machst, wer dann? :) Mindestens API über Websockets und statische Dateien über HTTP bereitstellen.

0

Wenn Sie planen, Ihre mobile App zu einer vollwertigen Website zu machen, gibt es möglicherweise wichtige Gründe, HTTP + WebSocket im Gegensatz zu einem WebSocket zu verwenden. Auch HTTP ist länger als WebSockets, daher gehe ich davon aus, dass die Unterstützung für HTTP weit verbreiteter ist als die WebSocket-Unterstützung. Wenn Sie also jemals eine API für Ihre App erstellt haben, ist HTTP wahrscheinlich eine gute Sache.