После долгих поисков я ничего не нашел в Stackoverflow по этой теме. У меня есть нодовое приложение, в котором на разных портах работают 3 разных сервера
- Веб-сервер (обслуживает динамические страницы)
- Socket.io (обрабатывает запросы из Webapp)
- Tcp Socket (обрабатывает запросы из приложения Desktop)
Я хочу создать двунаправленную связь между socket.io исокет tcp, так что данные, отправленные веб-приложением, будут получены приложением узла. Он будет перенаправлять эти данные в приложение Desktop с помощью сокета tcp.Мне удалось настроить пересылку данных из tcp-сокета в io.socket, но выполнение обратного выглядит немного сложнее
Мой код Socket.io
io.sockets.on('connection', function (socket)
{
console.log('Welcome Admin!')
mysocket = socket
socket.on('data', function (data)
{
console.log(data) // we received data from webapp lets forward it
// problem occur here, already tried to save the socket object of tcp but it gives error "cannot read property 'write' of undefined"
tcpSocket.emit('data', data) // also tried write function same error i.e. tcpSocket.write(data)
})
})
мой код сокета Tcp
var server = net.createServer(function(socket)
{
tcpSocket = socket; //to store socket object
console.log('CONNECTED: ' + socket.remoteAddress +':'+ socket.remotePort);
socket.on('data', function(data)
{
//received data from desktop app now forwarding to webapp
console.log('DATA ' + socket.remoteAddress + ': ' + data)
mysocket.emit('data', data + ''); //this works webapp receives data
})
socket.on('error', function(data)
{
console.log(data)
})
socket.on('close', function(data)
{
console.log('CLOSED: ' + socket.remoteAddress +' '+ socket.remotePort)
})
})