pocket-sockets
TypeScript icon, indicating that this package has built-in type declarations

4.0.0 • Public • Published

pocket-sockets

A powerful and smooth client/server sockets library for browser and Node.js, written in TypeScript with very few dependencies.

✔️ Written in TypeScript.

✔️ Support for both WebSockets and regular TCP sockets with a unified interface.

✔️ Works both in NodeJS and browser.

✔️ Supports SSL/TLS encryption with certificates.

✔️ Test suite of 105 tests.

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, ClientInterface} from "pocket-sockets";

const server = new WSServer({
    host: "localhost",
    port: 8181
});
server.listen();

server.onConnection( (client: ClientInterface) => {
    client.onData( (data: Buffer | string) => {
        client.send("This is server: received!");
    });
    client.onClose( () => {
        server.close();
    });
});

const client = new WSClient({
    host: "localhost",
    port: 8181
});
client.connect();

client.onConnect( () => {
    client.onData( (data: Buffer | string) => {
        client.close();
    });
    client.send("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
cd ./test/cert/ && ./generate_self_signed_cert.sh && cd ../..
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.

Package Sidebar

Install

npm i pocket-sockets

Weekly Downloads

15

Version

4.0.0

License

MIT

Unpacked Size

409 kB

Total Files

80

Last publish

Collaborators

  • bashlund