Provides easy and secure websocket communication mechanisms, including server and client implementation, function call routing, connection management, and tagging.
dist | ||
test | ||
ts | ||
.gitignore | ||
.gitlab-ci.yml | ||
package.json | ||
README.md |
smartsocket
easy and secure websocket communication, Typescript ready
Status
Usage
We recommend the use of typescript. Under the hood we use socket.io and shortid for managed data exchange.
Serverside
import * as smartsocket from "smartsocket";
let mySmartsocket = new smartsocket.Smartsocket({
port: 3000 // the port smartsocket will listen on
});
let mySocketRole = new smartsocket.SocketRole({
name: "someRoleName",
passwordHash: "someHashedString"
});
let mySocketFunction = new smartsocket.SocketFunction({
name:"newService",
func:(data) => {
}, the function to execute
roles:[mySocketRole] // all roles that have access to a specific function
});
mySmartsocket.registerRole(mySocketRole);
mySmartsocket.clientCall.select("client1","restart",data)
.then((responseData) => {
});
Client side
import * as smartsocket from "smartsocket";
let mySmartsocketClient = new smartsocket.SmartsocketClient({
url: "somedomain.com", // url, note: will only work over https, no http supported.
port: 3000
role:"dockerhost", // some role, in this example a dockerhost vm,
password:"somePassword",
alias:"client1"
});
let mySocketFunction2 = new smartsocket.SocketFunction({
name:"restart",
func:(data) => {}, the function to execute
});
mySmartsocketClient.registerFunction(mySocketFunction2);
mySmartsocketClient.serverCall("newService",data)
.then((responseData) => {
});;
NOTE:
you can easily chain dependent requests on eiter the server or client side with promises.
data
is always a js object that you can design for your specific needs.
It supports buffers for large binary data network exchange.