2012-06-18 23 views
18

Sono un principiante in node.js (appena iniziato proprio oggi). Uno dei concetti di base non mi è chiaro, cosa che sto chiedendo qui & non è stato possibile trovare su SO.come comunicare tra due istanze node.js, un client one server

Leggendo alcuni tutorial sul web ho scritto un lato client & un codice lato server:

lato server (ad esempio server.js):

var http = require('http'); //require the 'http' module 

//create a server 
http.createServer(function (request, response) { 
    //function called when request is received 
    response.writeHead(200, {'Content-Type': 'text/plain'}); 
    //send this response 
    response.end('Hello World\nMy first node.js app\n\n -Gopi Ramena'); 
}).listen(1337, '127.0.0.1'); 

console.log('Server running at http://127.0.0.1:1337/'); 

lato client (say client.js):

var http=require('http'); 

//make the request object 
var request=http.request({ 
    'host': 'localhost', 
    'port': 80, 
    'path': '/', 
    'method': 'GET' 
}); 

//assign callbacks 
request.on('response', function(response) { 
    console.log('Response status code:'+response.statusCode); 

    response.on('data', function(data) { 
    console.log('Body: '+data); 
    }); 
}); 

Ora, per eseguire il server, digitare node server.js nel prompt di terminale o cmd. & viene eseguito correttamente registra il messaggio nella console & emette anche la risposta quando si passa a 127.0.0.1:1337.

Ma, come eseguire client.js? Non riuscivo a capire come eseguire il codice lato client.

+3

nodo non è lato server dalla parte del cliente. Guarda questo. http://stackoverflow.com/questions/5168451/javascript-require-on-client-side –

+2

Non sai dove hai trovato client.js o cosa ti aspetti che faccia, ma non è qualcosa che potresti inserire in un browser. Se per client, intendi un'altra applicazione Node.js, certo. Penso che il tutorial che hai trovato ti indicasse come scrivere un server che acceda alle risorse HTTP su altri server. – Brad

+0

Dove hai trovato 'client.js'? L'hai scritto tu stesso? Cosa stai cercando di ottenere con quello? – jsalonen

risposta

10

Risposta breve: è possibile utilizzare il comando

node client.js 

per eseguire il codice "client side", invierà una richiesta HTTP

Riguardo a ciò che è server side e ciò che è client side, è davvero dipende il contesto.

Anche se nella maggior parte dei casi, client side indica il codice in esecuzione sul browser o sull'app del telefono cellulare, server side significa "server" o "back-end" con cui sta parlando il browser o il cellulare.

Nel tuo caso, penso che sia più simile a un "server" parla con un altro "server", e sono entrambi sul back-end, dal momento che questo è ciò che Node.js è progettato per

+0

ok, fammi controllare questo metodo. – gopi1410

+1

@ gopi1410 come diceva Larry, se vuoi che il tuo client.js parli con il tuo server.js, dovresti cambiare la porta del tuo client.js to 1337 – xvatar

+0

ho cambiato "host" in "127.0.0.1" e "port" in 1337, ma ancora quando eseguo 'node client.js', non mostra alcun errore, ma non emette alcunché in la console. Non dovrebbe mostrare il codice di stato della risposta ?? – gopi1410

Problemi correlati