README
redis-broker
Simple web-socket server that connects any web browser to redis. Web browsers can issue any redis command and also subscribe to any channel. All the messages exchanged between the web browser and the web-socket server are in JSON format.
Installation
sudo yum -y install redis
npm install redis-broker
Usage
$ npx redis-broker -h
usage: redis-broker [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 redis-broker
Starting up redis-broker, serving port 3500
Hit CTRL-C to stop the server
Start a websocket server when redis requires authentication:
$ npx redis-broker -a password
Starting up redis-broker, 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/chaserjs/redis-broker.git
cd redis-broker
npm install
Build:
npm run build
Test:
npm test
Lint, Build, Test, and Clean:
npm run all
Update Dependencies:
npm update --save
License
MIT