2017-02-25 63 views
0

我的Linux中有一個桌面軟件,它在端口9000中有一個套接字。它們與另一個應用程序連接。 我需要查看爲其他應用程序發送的所有消息。我該如何做一個套接字代理來記錄所有傳遞的消息?收聽存在套接字的所有消息

現在我有:

軟件1創建端口的套接字9000 軟件2使與端口的連接9000

我想: 軟件1創建端口的套接字9000 我的新應用程序創建一個端口爲9005的套接字。 軟件2與端口9005建立連接。 爲我的新應用程序發送的所有消息都應記錄並傳遞消息以用於其他軟件。

我該如何做到這一點?

謝謝!

+0

是這些普通的TCP套接字? WebSockets的?什麼是套接字協議? – jfriend00

+0

Websockets是協議。 –

回答

0

如果你試圖做的是採取所有傳入的WebSocket消息到達端口9000,並送他們出去端口9000(轉發它們),那麼你可以做的是這樣的:

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 - 這是否回答你的問題? – jfriend00