networking_typingofdict
v2.0.0
Published
Lightweight TCP messaging library with auto-reconnect, JSON protocol, broadcast & event-driven API — pure Node.js net module, no HTTP needed
Maintainers
Readme
networking_typingofdict
Lightweight TCP messaging library with auto-reconnect, JSON protocol, broadcast & event-driven API.
Pure Node.js net module — no HTTP, no browser, no heavy dependencies.
Features
- Event-driven API —
TCPServerandTCPClientextendEventEmitter - JSON messaging protocol — automatic encode/decode with newline-delimited JSON
- Auto-reconnect — client reconnects automatically on disconnect
- Broadcast — send to all connected clients at once
- Client management — track connected clients by ID, disconnect individually
- Zero dependencies — only uses Node.js built-in modules
Install
npm install networking_typingofdictQuick Start
Server
const { TCPServer } = require('networking_typingofdict');
const server = new TCPServer({ port: 8080 });
server.on('connection', ({ id }) => {
console.log(`Client ${id} connected`);
});
server.on('message', ({ id, data }) => {
console.log(`From client ${id}:`, data);
server.send(id, { reply: 'ok' });
});
server.on('disconnect', ({ id }) => {
console.log(`Client ${id} disconnected`);
});
server.start().then(() => console.log('Server listening on :8080'));Client
const { TCPClient } = require('networking_typingofdict');
const client = new TCPClient({
port: 8080,
host: '127.0.0.1',
reconnect: true, // auto-reconnect on disconnect
reconnectInterval: 3000 // retry every 3 seconds
});
client.on('connect', () => {
console.log('Connected to server');
client.send({ type: 'hello', name: 'Alice' });
});
client.on('message', (data) => {
console.log('Server says:', data);
});
client.on('disconnect', () => {
console.log('Disconnected');
});
client.connect().catch(console.error);API
TCPServer
| Method | Description |
|--------|-------------|
| new TCPServer({ port, host }) | Create server (default: port 8080, host 0.0.0.0) |
| server.start() | Start listening. Returns Promise. |
| server.stop() | Stop server & disconnect all. Returns Promise. |
| server.send(clientId, data) | Send JSON message to specific client |
| server.broadcast(data) | Send JSON message to all clients |
| server.disconnect(clientId) | Force-disconnect a client |
| server.getClientIds() | Get array of connected client IDs |
Events: connection, message, disconnect, error
TCPClient
| Method | Description |
|--------|-------------|
| new TCPClient({ port, host, reconnect, reconnectInterval }) | Create client |
| client.connect() | Connect to server. Returns Promise. |
| client.disconnect() | Disconnect. Returns Promise. |
| client.send(data) | Send JSON message to server |
Events: connect, message, disconnect, error
Utility Functions
| Function | Description |
|----------|-------------|
| encodeMessage(obj) | Encode object to newline-delimited JSON string |
| decodeMessages(buffer, leftover) | Decode buffer into { messages, leftover } |
License
MIT
