2015-01-21 1 views
4

всекак запустить node.js клиент в браузере

Я очень новичок в node.js. Я пытаюсь сделать tcp-сервер < -> клиент, использующий node.js. Все идет нормально. Скрипт сервера можно запустить. Также можно запустить клиентский скрипт ОК.

Но проблема в том, что я мог только заставить клиента работать с терминалом, набрав команду (node ​​client.js).
Дело в том, что я хотел бы запустить его в браузере, чтобы я мог принимать данные, полученные от отображения сервера в браузере.

Как это сделать?

Пожалуйста, помогите.

Kawin.

Это код клиента. (Я не могу вспомнить, кто первоначально создал этот сценарий. Я скопировать и вставить его откуда-то, но забудьте сделать закладку, с которой я получаю ссылку. Извините за не прикладывая кредит владельцу этого сценария.)

var net = require('net'); 

var HOST = '192.168.0.88'; 
var PORT = 8888; 

var client = new net.Socket(); 
client.connect(PORT, HOST, function() { 

    console.log('CONNECTED TO: ' + HOST + ':' + PORT); 
    // Write a message to the socket as soon as the client is connected, the server will receive it as message from the client 
    client.write('B2\r\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('DATA: ' + data); 
    // Close the client socket completely 
    client.destroy(); 
}); 

// Add a 'close' event handler for the client socket 
client.on('close', function() { 
    console.log('Connection closed'); 
}); 

Спасибо.

+1

* «Как я могу это сделать?» * Вы не можете. Node.js и браузер - это две разные среды. Если вы используете уникальную для среды (например, сокеты TCP) функцию, вы не можете использовать тот же скрипт в других средах. –

+0

Спасибо. поэтому я думаю, что мне, возможно, придется изменить свой план, чтобы добиться этого. –

ответ

6

Node.js не является браузером javascript. Есть много его частей, которые используют функции ОС, недоступные в контексте браузера. Способ делать то, что вы хотите делать, находясь в браузере для клиента, заключается в том, чтобы не использовать сокет TCP, а вместо этого искать в WebSockets (например, socket.io, который предлагает сервер и клиенты браузера).

+0

Большое спасибо. По-моему, я должен изменить свою игру на websocket, которая звучит более правильно, как вы сказали. большое спасибо –

-4

Дело в том, что я хотел бы запустить его в браузере, чтобы я мог принимать данные, полученные от отображения сервера в браузере.

Я думаю, вам нужен модуль «http».

var http=require('http'); 
var server=http.Server(function(req,res) { 
    res.end('<p>hello world</p><script>alert("hello world")</script>'); 
}); 

server.listen(8080); 

так что вы можете получить данные из стороны браузера, введя URL «LOCALHOST: 8080»

Смежные вопросы