2011-05-16 5 views
2

Scénario: J'ai de nombreux clients (pages Web, via Socket.io) qui se connectent à un serveur Node.js (appelez-le A). Le serveur agit comme une application "proxy" à un autre service (Node.js aussi) pour ces clients, appelons le service B. En pratique, les pages parlent au service B en utilisant le proxy. J'essaie de comprendre si je pouvais prendre UNE seule socket ouverte du serveur A au service B, juste pour gagner en performance et en ressources (sur la première connexion client sur le serveur A, le serveur ouvrira le socket à B et maintiendra il s'ouvre pour que le message circule de manière bidirectionnelle). Bien sûr, le problème est que sans une sorte d'intervention, les messages peuvent être brouillés les uns sur les autres, ce qui entraîne un désordre que le service B ne peut pas comprendre. Je suis tout à fait novice dans la programmation socket, et je me demande si cela est encore un problème « résolu », ou tout simplement la mauvaise réponse au problème :) Merci Nodejs: demandes de nombreux clients via un socket

+0

des messages séparés je serais avec un \ n, puis sur B en boucle sur un .split (« \ n ») ... – Claudio

+0

Cela dépend vraiment de la façon dont vous mandatement demandes de A à B. Pourriez-vous poster un exemple de code? –

+0

Ehi Rob, c'est très simple: A et B parlent via une socket TCP, donc ils partagent un flux de données dans lequel les messages du client et les réponses pertinentes de B circulent. Le problème est que les messages dans le flux doivent être "enveloppés", en paquets. J'utilise maintenant un simple "\ n" "protocole" délimité puis ... il semble fonctionner – Claudio

Répondre

0

De vos commentaires, il ressemble vous bénéficieriez de quelque chose comme PubSub de Redis.

Voir http://redis.io/ et plus précisément, http://redis.io/commands#pubsub

+0

J'accepte la réponse parce que j'ai déjà utilisé Redis pub/sub pour un autre de mes projets et je vais peut-être l'utiliser aussi dans celui-ci. (déjà en train d'y penser). Je vous remercie :) – Claudio

Questions connexes