2013-02-26 14 views
21

Attualmente sto utilizzando Sockets.io per comunicare con i client, inviando JSON e quant'altro, da una porta.Utilizzo di node.js per l'ascolto su 2 porte diverse

Funziona tutto bene, ma quello che mi piacerebbe fare è ascoltare simultaneamente su un'altra porta per creare un tipo di pagina di amministrazione a scopo di test.

Ad esempio, la pagina avrebbe un pulsante per inviare un determinato tipo di JSON per tutti i client connessi sull'altra porta.

Se questo non è l'ideale, qualsiasi aiuto su altre soluzioni semplici sarebbe grandioso.

risposta

42

Basta creare un'altra istanza di http e metterla per ascoltare la porta che ti interessa. Lasciate che vi mostri un esempio:

var http = require('http'); 

http.createServer(onRequest_a).listen(9011); 
http.createServer(onRequest_b).listen(9012); 

function onRequest_a (req, res) { 
    res.write('Response from 9011\n'); 
    res.end(); 
} 

function onRequest_b (req, res) { 
    res.write('Response from 9012\n'); 
    res.end(); 
} 

Quindi, è possibile testarlo (con il browser, o curl):

$ curl http://localhost:9011 
Response from 9011 

$ curl http://localhost:9012 
Response from 9012 
+2

un dubbio, è questa intenzione di creare due processi separati, o semplicemente uno? – juancancela

+2

@juancancela Creerà un singolo processo, poiché il nodo noto è un singolo processo, fino a quando non si imposterà esplicitamente un processo figlio da un singolo processo. – ShrekOverflow

+0

Fantastico, è possibile combinare più socket in ascolto e Clustering? – suresh

Problemi correlati