Skip to content

blackmiaool/blacksocket.io

Repository files navigation

blacksocket.io

A websocket wrapper. Basically compatiable with socket.io.

Travis NPM version Coverage Status Gzip Size dependencies Status contributors GitHub license

  • Lightweight
  • Callback
  • Auto reconnection
  • Object sending
  • Binary sending (even in object) (even in callback)
  • Once
  • Promise

Install

Server

npm i -S blacksocket.io

Client

Install with npm
npm i -S blacksocket.io
Use script file directly

Just for testing

<script src="https://raw.githubusercontent.com/blackmiaool/blacksocket.io/master/client/blacksocket.min.js"></script>

Usage

I have no time for writing a whole documentation for it. If you want to use it, I personally recommend you to read the test/test.js file to get all the demos.

Server

// initialize with port and path
const io = require("blacksocket.io/server")(23033, {
    path: "/test"
});
io.on("connection", function(socket) {
    console.log("socket connection");
    // listen client event
    socket.on("client-event", function(params, cb) {
        console.log("client-event", params);
        cb({ a: "it's an object" });
    });
    setInterval(() => {
        // send event to client
        socket.emit("server-event", { a: "server params" }, function(params) {
            // receive a callback
            console.log("server-event cb", params);
        });
    }, 3000);
});

Client (nodejs or browser)

const io = require("blacksocket.io/client");
// initialize with port and path
const socket = io(`:23033/test`);

// first-connect: triggered on first connection
// connect: triggered on every successful connection(including reconnection)
// reconnection event: triggered on reconnection
socket.on("first-connect", function() {
    console.log("connected");
    setInterval(() => {
        // send event to server
        socket.emit("client-event", { a: "client params" }, function(cbParams) {
            // receive a callback
            console.log("client-event cb", cbParams);
        });
    }, 1000);
});

socket.on("server-event", function(params, cb) {
    console.log("server-event", params);
    // invoke the callback to return some data to server
    cb({ a: "server-event cb" });
});

Try it with docker

docker run -it --rm -p 23034:80 -p 23033:23033 blackmiaool/blacksocket.io

Open the website

About document

- <Refactoring JavaScript Turning Bad Code Into Good Code>

About

A websocket wrapper.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published