Utilização socket.io com 'socket' líquido em nodejs



há alguma maneira que eu possa usar socket.io com rede em nodejs ? por isso, no final, tenho o serviço principal que ouve no porto, à espera da ligação (net socket) E main, enquanto ouve a procura do cliente estabelecer a ligação usando socket.io .

cenário de Exemplo:

  • serviço principal a executar a listagem no Porto X para qualquer pedido de ligação do serviço cliente .

  • navegador web aberto do cliente ligado ao serviço principal com o Servidor http

  • no caso de quaisquer dados recebidos do serviço Cliente (Servidor B) através do net socket, os dados serão enviados através socket.io ao navegador de abertura do cliente ligado .



Digram

Author: uno-2017, 2015-10-22

1 answers

Os Nodejs permitem abrir 2 portas no mesmo processo em execução . O exemplo seguinte mostra:

  • Lista do serviço principal na porta 8124 para qualquer conexão de socket de entrada usando o socket de rede .

  • Serviço principal ouvir na porta 8081 para qualquer ligação http entrada e cliente pode receber quaisquer dados do serviço principal usando socket.io

Expressjs version: 4.13.3
socket.io versão : 1.3.7

Exemplo :

Serviço principal

var express = require('express');
var app = express();
var server = require("http").Server(app);
var io = require("socket.io")(server);
var net = require('net');


var netServer = net.createServer(function(c) {
  console.log('client connected');

  c.on('end', function() {
    console.log('client disconnected');
  });

  c.write('hello\r\n');
  c.pipe(c);
});

// main service listing to any service connection on port 8124
netServer.listen(8124);

app.get('/', function (req, res) {
  res.sendFile(__dirname+'/index.html');
});

app.use(express.static(__dirname+'/static'));

io.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});
server.listen(8081);

Serviço Do Cliente (Servidor B):

   var net = require('net');

var client = new net.Socket();
client.connect(8124, '127.0.0.1', function() {
    console.log('Connected');
    client.write('Hello, server! Love, Client.');
});

client.on('data', function(data) {
    console.log('Received: ' + data);
});

client.on('close', function() {
    console.log('Connection closed');
});

Índice.html

<script src="/js/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost:8081');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>
 1
Author: uno-2017, 2015-10-22 21:28:05