Introduction to nssocket
nssocket is a versatile network communication library for Node.js, providing an elegant way to build TCP servers and clients with support for various messaging patterns. In this guide, we’ll explore the API of nssocket
with code examples to illustrate its practical usage.
Installing nssocket
npm install nssocket
Creating a Basic TCP Server
const nssocket = require('nssocket');
const server = nssocket.createServer(function (socket) {
socket.send(['hello'], 'world');
socket.data(['hello'], function (data) {
console.log(data); // Outputs: world
});
});
server.listen(6785);
Creating a TCP Client
const nssocket = require('nssocket');
const socket = new nssocket.NsSocket();
socket.connect(6785);
socket.data(['hello'], function (data) {
console.log(data); // Outputs: world
});
socket.send(['hello'], 'world');
Using Middleware
nssocket’s middleware capabilities allow for pre-processing of incoming and outgoing messages.
server.use(function (socket, next) {
console.log('New connection:', socket.remoteAddress);
next();
});
socket.send(['hello'], 'world');
Handling JSON Messages
Send and receive JSON messages seamlessly with nssocket.
// Server socket.send(['jsonMessage'], { message: 'Hello World' });
socket.data(['jsonMessage'], function (data) {
console.log(data.message); // Outputs: Hello World
});
// Client const client = new nssocket.NsSocket();
client.connect(6785);
client.data(['jsonMessage'], function (data) {
console.log(data.message); // Outputs: Hello World
});
client.send(['jsonMessage'], { message: 'Hello World' });
Reusable Connection Logic
Abstract complex connection logic into reusable functions.
function establishConnection(port, host) {
const socket = new nssocket.NsSocket();
socket.connect(port, host);
socket.on('start', function () {
console.log('Connection established!');
});
}
establishConnection(6785, 'localhost');
Real-World Application Example
Here is a simple chat application using nssocket.
Server Code
const nssocket = require('nssocket');
const chatServer = nssocket.createServer((socket) => {
socket.on('data', (msg) => {
chatServer.broadcast('message', msg);
});
});
chatServer.listen(6785);
chatServer.broadcast = function (event, msg) {
this.sockets.forEach((socket) => {
socket.send([event], msg);
});
};
Client Code
const nssocket = require('nssocket');
const chatClient = new nssocket.NsSocket();
chatClient.connect(6785);
chatClient.data(['message'], function (msg) {
console.log('New message:', msg);
});
process.stdin.on('data', function (data) {
chatClient.send(['message'], data.toString().trim());
});
This guide introduces the core features of nssocket, providing a foundation for building your own networked applications.
Hash: a4cc29ba8ef5d1265196dde00d057a6ff8e66a3acf206e6004b7e863f21d4277