notify-bridge

JSON-RPC notification bridge

npm install notify-bridge
8 downloads in the last month

notify-bridge

JSON-RPC notification bridge

notify-bridge transforms JSON-RPC notifications which it receives through POST requests into socket.io events. Basicly this means you can use this as a bridge to send push notifications out of PHP (or any other language) to your clients (=browsers).

Installation is quite simple if you have node installed:

$ npm install -g notify-bridge

There is also a standalone version availible. Look into the Downloads section for that.

Now you have a commandline tool called 'notify-bridge'. To get an idea about the configuration options type-in:

$ notify-bridge --help

This will output:

Usage: notify-bridge [options] --start

Options:

  -h, --help                     output usage information
  -V, --version                  output the version number
  -s, --start                    Start the bridge
  -i, --input-modules <list>     The input Modules (default: notify-bridge-http)
  -o, --output-modules <list>    The output Modules (default: notify-bridge-socketio)
  -hi, --http-ip <string>        Bind the HTTP Server to an IP (default: 127.0.0.1)
  -hp, --http-port <string>      On which port should the HTTP Server listen (default: 4440)
  -ha, --http-auth <boolean>     Use Basic Authentication (default: false)
  -hu, --http-user <string>      Basic Authentication Username (default: admin)
  -hr, --http-password <string>  Basic Authentication Password (default: admin)
  -sp, --socketio-port <string>  On which port should the Socket.IO Server listen (default: 4450)

As you can see, all you have todo to start the bridge with the default options is:

$ notify-bridge --start

Emitting notifications is done by sending POST requests to the bridge. The POST request must contain a field named 'rpc'. Within this field you send the JSON. This is an example using Curl from the commandline to trigger a notification 'update':

$ curl --data "rpc={\"method\":\"update\",\"jsonrpc\":\"2.0\"}" http://127.0.0.1:4440

If you are using PHP as Endpoint you can also checkout notify-php for sending notifications.

To Receive the notifications from within the browser you at first have to include socket.io Javascript:

<script src="http://<your-host>:4450/socket.io/socket.io.js"></script>

Now create a connection to the bridge and listen for new notifications:

var socket = io.connect('<your-host>:4450/');
socket.on('update', function(data) {
  console.log(data); // received a notification
});

License

Copyright (c) 2012 Simon Kusterer
Licensed under the MIT license.

npm loves you