Ich verwende eine Bibliothek (ShareDB) für die operative Transformation, und die Server-und Client-Seite verwenden einen Websocket-Json-Stream zur Kommunikation. Allerdings wird diese ShareDB auf Nodejs als Dienst ausgeführt (ich verwende zerorpc, um meine Knotenprozesse zu steuern), da mein Haupt-Web-Framework Tornado (Python) ist. Ich verstehe aus dieser thread, dass mit einem Stateful-Protokoll wie TCP, die Verbindungen durch den Client-Port unterschieden werden (so dass nur ein Server-Port erforderlich ist). Und gemäß dieser response regarding how websockets handle multiple incoming requests gibt es keinen Unterschied in dem zugrundeliegenden Transportkanal zwischen tcp und websockets.Differenzieren mehrerer Websockets
Also meine Frage ist, wenn ich einen Websocket vom Client zum Python-Server und dann auch vom Client zu meinem Nodejs-Code (der ShareDB-Dienst) erstellen, wie kann der Server unterscheiden, welcher Sockel mit welchem geht? Ist es die Verantwortung des Servers, nur einen einzigen Socket zu haben, der eine Verbindung zu einer bestimmten Zeit "abhört" (dh zuerst die Kommunikation mit dem Python-Server herzustellen und dann nach dem zweiten Websocket zu horchen?)
Ich kann nicht ganz folgen, was mit was verbindet. Sie verwenden den Begriff "Server" und "Client" ohne ausreichende Beschreibung für das, was Sie meinen. Es klingt, als hätten Sie zwei Server (einen Python-Server und einen Nodejs-Server) und einen Client. Ich würde also annehmen, dass der Client sich mit jedem Ihrer zwei separaten Server verbindet. Aber dann fragen Sie, wie der Server unterscheiden kann, aber jeder Server sollte nur eine Verbindung zu einem bestimmten Client haben? Verwirrt darüber, was Sie versuchen zu tun. Zu Ihrer Information: Normalerweise würden Sie eingehende WebSocket-Verbindungen genauso identifizieren wie eingehende HTTP-Verbindungen mit Cookies. – jfriend00
Wenn Sie eine Verbindung vom Client zu jedem Ihrer separaten Server auf demselben physischen Servercomputer herstellen, würde jeder Ihrer Serverprozesse auf einem anderen Port warten und der Client würde sich mit dem entsprechenden Port verbinden, um den Server zu identifizieren verbinden mit. – jfriend00
Danke, ich denke du hast es besser zusammengefasst als ich es formuliert habe, also werde ich die Formulierung bearbeiten. Beide Server sind auf demselben physikalischen System ... Ich benutze Heroku und wie ich es verstehe, erlauben sie nur einen einzigen Port offen zu sein. – Flaminator