I want to build a TCP server (say, tcpserver.js
) created with net.createServer()
. I have a TCP client (say, eventSource.js
) that writes to this server at a high frequency e.g. 100s per sec. I have a TCP client eventSink.js
that will connect to this TCP server and process the received data. This TCP client will connect only once every few hours and for only few minutes. Here are my questions.
- How do I handle back-pressure during the time when the
eventSink.js
is not connected? - What does this statement from NodeJs Net documentation mean? How does a 'no listener' look like in the
socket.on('data', ...)
look like?The data will be lost if there is no listener when a Socket emits a 'data' event.
- How do I differentiate the client connections from
eventSource.js
andeventSink.js
?
Can you please show me some pseudo-code to get started?
This is what I have so far for tcpserver.js
.
const net = require('net')
class TcpServer {
constructor(port) {
this.tcpServer = net.createServer((c) => {
c.on('close', (err) => {
if (err) {
console.log('Error in closing socket connection.')
} else {
this.tcpServer.close()
}
})
c.on('data', (buffer) => {
// help...
})
this.tcpServer.listen(port, () => {
// ...
});
}
}
exports.TcpServer = TcpServer