A lightweight wrapper around Node.js net.Server that simplifies TCP server lifecycle management and connection tracking.
npm install @gibme/tcp-server
or
yarn add @gibme/tcp-server
Full API documentation is available at https://gibme-npm.github.io/tcp-server/
import { createServer } from '@gibme/tcp-server';
const server = createServer();
server.on('connection', socket => {
socket.on('data', data => {
console.log('Received:', data.toString());
socket.write(data); // echo back
});
});
await server.start(8080);
console.log('Listening on %s:%s', server.bindIP, server.bindPort);
createServer(options?, connectionListener?)Factory function that returns a new TCPServer instance.
options — Optional net.ServerOptsconnectionListener — Optional callback invoked on each new connectionTCPServerExtends net.Server with automatic socket tracking and a promise-based lifecycle.
new TCPServer(options?: ServerOpts, connectionListener?: (socket: Socket) => void)
| Method | Description |
|---|---|
TCPServer.create(options?, connectionListener?) |
Alias for createServer() |
| Property | Type | Description |
|---|---|---|
sockets |
Socket[] |
All currently connected sockets |
bindIP |
string |
Bound IP address (throws if not listening) |
bindPort |
number |
Bound port number (throws if not listening) |
| Method | Description |
|---|---|
start(port?, hostname?, backlog?) |
Start listening. Returns Promise<void>. Defaults: OS-assigned port, all interfaces, backlog 511. |
stop() |
Destroy all connected sockets and close the server. Returns Promise<void>. |
The following are re-exported directly from the net module for convenience:
ServerServerOptsSocketcreateConnectionimport { createServer } from '@gibme/tcp-server';
const server = createServer();
server.on('connection', socket => {
socket.on('data', data => socket.write(data));
});
await server.start(3000, '127.0.0.1');
import { createServer, createConnection } from '@gibme/tcp-server';
const server = createServer();
server.on('connection', socket => {
socket.on('data', data => socket.write(data));
});
await server.start();
const client = createConnection(server.bindPort, '127.0.0.1');
client.on('data', data => {
console.log('Server replied:', data.toString());
});
client.write('Hello, server!');
import { createServer } from '@gibme/tcp-server';
const server = createServer();
server.on('connection', socket => {
socket.on('data', data => {
// broadcast to all connected clients
for (const peer of server.sockets) {
peer.write(data);
}
});
});
await server.start(4000);
MIT