node.js - How can you make an HTTP GET request OVER a socket using NodeJS? -
i'm working hardware device (i did not create) has standard way communicate on socket connection. device initiates socket connection contacted server(nodejs server in question).
i have been successful in setting socket connection with...
var socketserver = net.createserver() .listen(9999, function(){ console.log('socket listening at: http://localhost:9999'); }); socketserver.on('connection', function(sock) { console.log('connected: ' + sock.remoteaddress +':'+ sock.remoteport); console.log(sock); // need fire http here });
however, need send http request on socket connection. far way can figure out how manually socket.write myself.
what i'm hoping class http allows like...
http.get(socket, function(res){ // handler code })
i'm positive issue me being newb @ nodejs, spent 3-4 hours scouring stackoverflow , google answer far no success.
figured out! @peter-lyons suggestion. however, answer rather simple , needed read further nodejs docs around net.socket class.
the secret 2 fold... 1) in nodejs docs net.socket explains class can used client socket.event.connect.
2) needed .write http manually. this post helped me answer.
here how did it. please feel free comment on method.
var socketserver = net.createserver() .listen(9999, function(){ console.log('socket server listening at: http://localhost:9999'); }); socketserver.on('connection', function(socket) { console.log('server connected: ' + socket.remoteaddress +':'+ socket.remoteport); socket.on('data', function(data) { console.log('socket response: ' + data); }).on('connect', function() { socket.write("get /rest/whoami http/1.1\r\n\r\n"); console.log('socket request send'); }).on('end', function() { console.log('socket ended'); }); });
... , boom
Comments
Post a Comment