Ich erstelle eine Web-App, die über Socket-Verbindungen mit einer anderen Anwendung kommunizieren muss. Das ist Neuland für mich, so will sicher sein , dass Steckdosen sind anders als WebSockets . Es scheint, als wären sie nur konzeptionell ähnlich.
Fragen, weil ich ursprünglich geplant hatte, Django als Grundlage für mein Projekt zu verwenden, aber in dem oben verlinkten SO-Beitrag wurde sehr deutlich gemacht, dass Websockets nicht möglich (oder zumindest nicht zuverlässig sind, selbst mit so etwas wie Django-Websockets) ) mit dem bevorzugten Django-Setup (Apache mit mod_wsgi). Ich habe jedoch andere Beiträge gefunden, die das Python-Socket-Modul beiläufig importieren, um den Hostnamen des Servers zu ermitteln .
So:
- Sind sie wirklich anders?
- Gibt es einen Grund, Django nicht für ein Projekt zu verwenden, bei dem Socket-Verbindungen mit einem externen Server hergestellt werden müssen?
Websockets verwenden bei ihrer Implementierung Sockets. Websockets basieren auf einem Standardprotokoll (jetzt im letzten Aufruf, aber noch nicht endgültig), das eine Verbindung "Handshake" und Nachricht "Frame" definiert. Die beiden Seiten durchlaufen die Handshake-Prozedur, um eine Verbindung gegenseitig zu akzeptieren, und verwenden dann das Standardnachrichtenformat ("Frame"), um Nachrichten hin und her zu leiten.
Ich entwickle ein Framework, mit dem Sie mit installierter Software direkt von Maschine zu Maschine kommunizieren können. Es könnte Ihrem Zweck entsprechen. Sie können meinem Blog folgen, wenn Sie möchten: http://highlevellogic.blogspot.com/2011/09/websocket-server-demonstration_26.html
quelle
Sie müssten WebSockets (oder ein ähnliches Protokollmodul, wie es vom Flash-Plugin unterstützt wird) verwenden, da eine normale Browseranwendung einfach keinen reinen TCP-Socket öffnen kann.
Das
Socket.IO
für verfügbare Modulnode.js
kann viel helfen, aber beachten Sie, dass es kein eigenständiges WebSocket-Modul ist.Es ist eigentlich ein allgemeineres Kommunikationsmodul, das auf verschiedenen anderen Netzwerkprotokollen ausgeführt werden kann, einschließlich WebSockets und Flash-Sockets.
Wenn Sie also
Socket.IO
auf der Serverseite verwenden möchten, müssen Sie auch deren Clientcode und Objekte verwenden. Sie können nicht einfach unformatierteWebSocket
Verbindungen zu einemsocket.io
Server herstellen, da Sie dessen Nachrichtenprotokoll emulieren müssten.quelle
WebSocket ist genau wie HTTP nur ein weiteres Protokoll auf Anwendungsebene über das TCP-Protokoll.
Einige der unten aufgeführten Ausschnitte <Spring in Action 4> sollen Ihnen helfen, WebSocket besser zu verstehen.
quelle
Beachten Sie bei Ihrer Frage (b), dass die Websocket-Spezifikation noch nicht fertiggestellt wurde. Laut W3C :
Persönlich halte ich Websockets für zu aktuell, um sie derzeit zu verwenden. Obwohl ich sie wahrscheinlich in ungefähr einem Jahr nützlich finden werde.
quelle