UNPKG

node-jet

Version:

Jet Realtime Message Bus for the Web. Daemon and Peer implementation.

42 lines (41 loc) 1.2 kB
/* istanbul ignore file */ import { createServer } from 'net'; import { EventEmitter } from './index.js'; import MessageSocket from './message-socket.js'; import { Socket } from './socket.js'; /** * Class implementation of a TCP server. This implementation only runs in a node.js environment */ export class TCPServer extends EventEmitter { config; tcpServer; connectionId = 1; /** * Constructor to create a TCP Server instance */ constructor(config) { super(); this.config = config; } /** * This function starts a TCP server listening on the port specified in the config */ listen() { this.tcpServer = createServer((peerSocket) => { const sock = new Socket(new MessageSocket(peerSocket)); sock.id = `ws_${this.connectionId}`; this.connectionId++; peerSocket.addListener('close', () => { this.emit('disconnect', sock); }); this.emit('connection', sock); }); this.tcpServer.listen(this.config.tcpPort); } /** * Function to stop the TCP server */ close() { this.tcpServer.close(); } }