Доброго времени суток.
Пытаюсь понять, как подключить 2 tcp клиента к серверу node.js, который крутится на raspberry pi. Использую модуль "net". Всё сделал по стандарту. В упрощённом виде это так:
var ethernet_port = 7000;
var net = require('net');
var server = net.createServer(ethernet_handler).listen(ethernet_port);
function ethernet_handler (e_socket)
{
e_socket.on ('data', on_receive);
e_socket.on('close', on_close);
e_socket.on('timeout', on_timeout);
e_socket.on('error', on_error);
function on_receive (msg)
{
console.log ("Received data: ", msg);
}
function on_close () {}
function on_timeout () {}
function on_error () {}
}
Дело в том, что в моих принимаемых данных уже закодирован номер tcp клиента и различать мне их не надо. Но потом, после обработки входящих данных, мне нужно слать данные модулю обратно. Для этого существует метод: socket.write (data). Он работает внутри обработчика сокета. Можно получить к нему доступ через замыкание. Но самое главное, что объект socket всегда указывает на последнего подключённого клиента.
Вопрос - как можно выбрать сокет (tcp клиента) в который шлём данные? Что-то мне подсказывает, что для каждого клиента надо создавать сокет с другим портом?