2017-02-25 2 views
0

J'ai un logiciel de bureau dans mon Linux qui a un socket dans le port 9000. Ils se connectent avec une autre application. J'ai besoin de voir tous les messages envoyés pour une autre application. Comment puis-je faire pour créer un proxy de socket pour consigner tous les messages transmis?Écouter tous les messages pour un socket existant

Aujourd'hui, j'ai:

logiciel1 créer une prise dans le port 9000. Software2 faire une connexion avec le port 9000.

Je veux: logiciel1 créer une prise dans le port 9000. Ma nouvelle application créer une socket dans le port 9005. Software2 établir une connexion avec le port 9005. Tous les messages envoyés pour ma nouvelle application doivent se connecter et transmettre un message pour un autre logiciel.

Comment puis-je faire cela?

Merci!

+0

Est-ce ces sockets TCP simples? webSockets? Quel est le protocole sur la socket? – jfriend00

+0

Websockets est le protocole. –

Répondre

0

Si ce que vous essayez de faire est de prendre tous les messages WebSocket entrants arrivant sur le port 9000 et de les envoyer sur le port 9000 (les transmettre), alors vous pouvez le faire comme ceci:

const WebSocket = require('ws'); 

// create webSocket server for incoming connections on port 9000 
const wServer = new WebSocket.Server({port: 9000}); 

const wClient = new WebSocket('ws://www.somehost.com', {}); 

wClient.on('open',() => { 
    console.log("connected to other client"); 
}); 

wClient.on('error, err => { 
    console.log("client error", err); 
}); 

// server event handlers 
wServer.on('listening',() => { 
    console.log("server started"); 
}); 

wServer.on('connection', ws => { 
    // forward all incoming messages to the other server 
    ws.on('message', msg => { 
     wClient.send(msg); 
    }); 
}); 

wSserver.on('error', err => { 
    console.log("server error", err); 
}); 
+0

@RenatoCaddino - Cela a-t-il répondu à votre question? – jfriend00