Je commence tout juste à jouer avec Node.js aujourd'hui, et j'ai pensé que je commencerais par ce que je pensais être un simple script: Connexion à un serveur via des sockets, et envoyer un peu de données, et le recevoir en retour. Je crée un utilitaire de ligne de commande. Rien dans le navigateur. Un exemple de serveur serait memcached, beanstalkd, etc. Il semble que le module net soit l'outil approprié pour le travail, mais je suis encore un peu flou sur la manière de faire les choses. De l'aide serait appréciée.Node.js: Connexion à un serveur à l'aide de sockets
Mise à jour # 1
Permettez-moi de voir si je peux le décomposer en en quelques petites questions. Je déteste même poser des questions comme celle-ci, mais la documentation de Node.js est très clairsemée, et la plupart de la documentation écrite il y a 6 mois est déjà périmée.
1) Je peux donc utiliser net.stream.write() pour envoyer des données au serveur distant, mais je ne sais pas comment récupérer une réponse. Je ne suis même pas sûr de savoir comment tester quand write() est fini, car il ne prend pas de callback.
2) Quelques indices sur le fonctionnement de l'événement event.emit seraient excellents. Je pense que c'est vraiment la pierre clé qui me manque dans tout ça.
Mise à jour # 2
est ici où je suis encore confus sur la mise en œuvre d'un programme client. Permettez-moi de schématiser une demande d'envoi type => obtenir un système de réponse:
1) Je lie les rappels au module réseau pour obtenir des réponses et d'autres événements, y compris les liens nécessaires pour obtenir une réponse du serveur.
2) J'utilise stream.write() pour envoyer une requête au serveur.
3) Je ne fais rien alors, car mon événement "data" lié recevra la réponse du serveur.
Voici où les choses deviennent difficiles. Supposons que j'appelle stream.write() deux fois avant que mon événement "data" lié soit appelé. Maintenant j'ai un problème. Lorsque l'événement "data" se produit, comment puis-je savoir laquelle des 2 requêtes est une réponse? Ai-je la garantie que les réponses se dérouleront dans le même ordre que les demandes? Que faire si les réponses reviennent dans un ordre différent?
Ne pas avoir beaucoup de temps ATM mais net. http://nodejs.org/api.html horloge sur 'net.Server' dans la barre latérale. Voilà. Tout est basé sur un événement, vous devez écouter l'événement 'data' du flux. L'exemple est en fait un serveur d'écho de base moins. Je peux faire d'autres exemples pour vous plus tard si vous le souhaitez. –
Dans les cas où il est important que vous sachiez sur quelle 'write' le client a répondu, vous devriez probablement ajouter un ID ou quelque chose de similaire aux données que vous envoyez/recevez. Mais c'est un problème général avec le réseautage et cela n'a rien à voir avec l'approche basée sur les événements. –