New at stackoverflow and new with Node.
I have one simple socket server and one web server.
I want the web server to send a message to the socket server if someone connected the web server.
Browser <=> Web Server/Socket Client <=> Socket Server
I created the server like this :
var http = require('http');
var net = require('net');
var HOST = '192.168.1.254';
var PORT = 8888;
var client = new net.Socket();
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n', function(){
client.connect(PORT, HOST, function() {
console.log('Connected To: ' + HOST + ':' + PORT);
client.write('0109001' + "\n");
});
// Add a 'data' event handler for the client socket
// data is what the server sent to this socket
client.on('data', function(data) {
console.log('The Data: ' + data);
client.destroy();
});
// Add a 'close' event handler for the client socket
client.on('close', function() {
console.log('Connection closed');
});
});
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
This code works but the web server sending the message to the socket server twice. Did I do something wrong maybe with the callback or something? Any help would be appreciated.
If you call this code by a browser it sends 2 requests to the server. One for the FavIcon and one for the page itself.
The code inside the callback is called twice because there are 2 requests.
As Matt mentioned: dont put the socket response handlers inside the callback, because you loose the reference to them and a new handler is attached for every request.
var http = require('http');
var net = require('net');
var HOST = '192.168.1.254';
var PORT = 8888;
var client = new net.Socket();
var url = require('url');
http.createServer(function (req, res) {
console.log(url.parse(req.url));
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n', function(){
console.log('Connected To: ' + HOST + ':' + PORT);
});
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With