xbroker
v0.6.3
Published
Simple web-socket server that connects any web browser to microservices like KV store, mongo, redis
Downloads
3
Maintainers
Readme
Simple web-socket middleware that connects any web browser to microservices like kv store, mongo, redis, etc. All the messages exchanged between the web browser and the web-socket server are in JSON format.
Installation
npm install xbroker
Usage
$ npx xbroker -h
usage: xbroker [options]
options:
-p --port web-socket server port [3500]
-a --auth redis authorization string
-b --batchMs batch building interval in ms [100]
-s --silent suppress log messages from output
-U --utc use UTC time format in log messages
-d --debug print debug messages
-v --verbose print more detailed messages
-h --help print this list and exit
Example
Start a websocket server:
$ npx xbroker
Starting up xbroker, serving port 3500
Hit CTRL-C to stop the server
Start a websocket server when redis requires authentication:
$ npx xbroker -a password
Starting up xbroker, serving port 3500
Hit CTRL-C to stop the server
Open a console in a browser and create a client socket:
var socket = new WebSocket("ws://localhost:3500");
socket.onopen = function(event) {
console.log("Connected to: " + event.currentTarget.url);
};
socket.onerror = function(error) {
console.log("Websocket error: " + error);
};
socket.onmessage = function(event) {
console.log(JSON.stringify(JSON.parse(event.data), undefined, 4));
};
socket.onclose = function(error) {
console.log("Disconnected from websocket");
};
Send the command "KEYS *" in a JSON format to Redis:
socket.send('{"tag": "1", "cmd": "keys", "args": ["*"]}')
{
"tag": "1",
"status": "ok",
"result": [
"key1",
"key2",
"key3"
],
"command": {"tag": "1", "cmd": "keys", "args": ["*TXN*"]}
}
Development
Setup:
git clone https://github.com/xbroker/xbroker.git
cd xbroker
npm install
Build:
npm run build
Test:
npm test
Lint, Build, Test, and Clean:
npm run all
Update Dependencies:
npm update --save
Testing with Client
The xbroker-client jest suite tries to connect to wss://localhost:3588 You need to start a redis service and a xbroker service on port 3588.
First option is to start a redis service in docker container and xbroker server from the command line:
# Start a redis container
./redis-dev-test/setup.sh
# Build xbroker
npm run all
# Start the xbroker server
npm run start -- -f ./redis-dev-test/xbroker-redis-ssl.conf
Second option is to start both a redis service and a xbroker server in a separate docker stack:
# Start a redis container
./xbroker-dev-test/setup.sh
License
MIT