jftp
v1.7.1
Published
Node.js interprocess communication with JSON
Downloads
81
Maintainers
Readme
Test conducted with JFTP 1.5.1, Fastify 5.5.0, Node.js v22.18.0
JFTP is best suited for scenarios where you need high bandwidth and low latency with small to medium JSON payloads (for example, a backend authentication service, which just transmits tokens or user credentials to other services).
import { UDSocketServer, createSerializer } from 'jftp';
const SOCKET_PATH = './secure_directory/my_socket.sock';
const server = new UDSocketServer();
// Create optional serializer for improved performance
const serializer = createSerializer({
type: 'object',
properties: {
anything: { type: 'string' }
}
});
// Handle incoming connections
server.on('connection', (socket) => {
console.log('Client connected');
// Handle incoming messages
socket.handle((message) => {
console.log('Received message:', message);
socket.schema(serializer); // Use custom serializer for responses
return { anything: 'Hello from server!' };
});
// Handle socket disconnect
socket.on('close', () => {
console.log('Client disconnected');
});
// Handle socket errors
socket.on('error', (error) => {
console.error('Socket error:', error);
});
});
// Listen for incoming connections
server.start(SOCKET_PATH, () => console.log(`Server listening on ${SOCKET_PATH}`));import UDSocket, { createSerializer } from 'jftp';
const SOCKET_PATH = './secure_directory/my_socket.sock';
const socket = new UDSocket({ timeoutMs: 3000 }); //custom timeout
// Create optional serializer for improved performance
const serializer = createSerializer({
type: 'object',
properties: {
anything: { type: 'string' }
}
});
// Handle socket errors
socket.on('error', (error) => {
console.error('Socket error:', error);
});
// Connect to the server
socket.connect(SOCKET_PATH, () => {
console.log("Connected to the server");
// Send a message and wait for a response
socket.schema(serializer).rpc({ anything: 'Hello from client!' })
.then(response => {
console.log('Received response:', response);
})
.catch(error => {
console.error('RPC error:', error);
});
});