A websocket wrapper. Basically compatiable with socket.io.
- Lightweight
- Callback
- Auto reconnection
- Object sending
- Binary sending (even in object) (even in callback)
- Once
- Promise
npm i -S blacksocket.io
npm i -S blacksocket.io
Just for testing
<script src="https://raw.githubusercontent.com/blackmiaool/blacksocket.io/master/client/blacksocket.min.js"></script>
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.
// 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);
});
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" });
});
docker run -it --rm -p 23034:80 -p 23033:23033 blackmiaool/blacksocket.io
Open the website
- <Refactoring JavaScript Turning Bad Code Into Good Code>