pocket-sockets
A powerful and smooth client/server sockets library for browser and Node.js, written in TypeScript with very few dependencies.
WebSockets vs. regular TCP sockets
WebSockets are a must when using a browser, however plain TCP sockets are faster and a good choice when no browser is involved.
The overall interface for pocket-sockets WebSocket and TCP sockets are identical so it is easy to switch between the underlying implementations.
Example
For a quick glimpse of what it looks like to set up a server that receives a string from clients, then replies back and closes the connection afterwards, follow the example below:
import {WSServer, WSClient, Client} from "pocket-sockets";
const server = new WSServer({
host: "localhost",
port: 8181
});
server.listen();
server.onConnection( (client: Client) => {
client.onData( (data: Buffer) => {
client.sendString("This is server: received!");
});
client.onClose( () => {
server.close();
});
});
const client = new WSClient({
host: "localhost",
port: 8181
});
client.connect();
client.onConnect( () => {
client.onData( (data: Buffer) => {
client.close();
});
client.sendString("This is client: hello");
});
For complete examples, please refer to the files under the ./example directory.
Run tests
git clone https://github.com/bashlund/pocket-sockets.git
cd pocket-sockets
npm isntall
npm test
Run examples
git clone https://github.com/bashlund/pocket-sockets.git
cd pocket-sockets
npm isntall
npx ts-node ./example/example-ws.ts
npx ts-node ./example/example-tcp.ts
Use in browser
For browser examples, please refer to the files under the ./example directory.
NPM
npm add --save pocket-sockets
Reference
Code documentation and API references are available in the official Wiki: https://github.com/bashlund/pocket-sockets/wiki.
Credits
Lib written by @bashlund, tests and wiki nicely crafted by @filippsen.
License
This project is released under the MIT license.