web-dev-qa-db-fra.com

Client Node.js pour un serveur socket.io

J'ai un serveur socket.io en cours d'exécution et une page Web correspondante avec un client socket.io.js. Tout fonctionne bien.

Mais, je me demande s’il est possible, sur une autre machine, d’exécuter une application node.js distincte qui agirait en tant que client et se connecterait au serveur socket.io mentionné?

116

Cela devrait être possible avec Socket.IO-client: https://github.com/LearnBoost/socket.io-client

74
alessioalex

Ajout dans l'exemple de solution donné plus tôt. En utilisant socket.io-clienthttps://github.com/socketio/socket.io-client

Côté client:

//client.js
var io = require('socket.io-client');
var socket = io.connect('http://localhost:3000', {reconnect: true});

// Add a connect listener
socket.on('connect', function (socket) {
    console.log('Connected!');
});
socket.emit('CH01', 'me', 'test msg');

Du côté serveur :

//server.js
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

io.on('connection', function (socket){
   console.log('connection');

  socket.on('CH01', function (from, msg) {
    console.log('MSG', from, ' saying ', msg);
  });

});

http.listen(3000, function () {
  console.log('listening on *:3000');
});

Courir :

Ouvrez la console 2 et exécutez node server.js et node client.js

37
AzizSM

Après avoir installé socket.io-client:

npm install socket.io-client

Voici à quoi ressemble le code client:

var io = require('socket.io-client'),
socket = io.connect('localhost', {
    port: 1337
});
socket.on('connect', function () { console.log("socket connected"); });
socket.emit('private message', { user: 'me', msg: 'whazzzup?' });

Merci alessioalex .

8

Oui, vous pouvez utiliser n’importe quel client tant qu’il est pris en charge par socket.io. Peu importe que son nœud, Java, Android ou Swift. Tout ce que vous avez à faire, est d’installer le package client de socket.io.

0
Suleman Tanveer