HTTPS SSH

Pointstream

Pointstream is a little system to demonstrate the usage of Server Sent Events to do real-time broadcasting in a web GIS application.
Watch this video to see it in action.

To give an impression of a full-stack application the system consists of a pipeline of programs:

  • pointgenerator: A small tool to generate points at a specific rate. Think points as some kind of incidents at a location like someone spontaneous screaming "Hurray!". The generated data is stored in a PostgreSQL database.

  • pointpoller: This tool polls the database at a certain rate to fetch all the events which happened since the last poll. Alternatively the Listen/Notify mechanism of PostgreSQL can be used. This data is send to the pointbroadcaster via a RabbitMQ message queue or a simple HTTP POST.

  • pointbroadcaster: This is mainly a web server on which web clients can listen to receive the events from the pipeline. The points are visualized with an OpenLayers 2 client.

Binary

There are binary releases available for Windows, GNU/Linux and Mac OS X (Darwin): https://bitbucket.org/s_l_teichmann/pointstream/downloads

Usage

  1. Prepare the database. See the file DEVELOPMENT.md for a sample database.
  2. Start the pointgenerator with ./pointgenerator -np -1.
  3. Start the pointpoller with ./pointpoller.

    Will use RabbitMQ per default. Add flag -n to use the notify/listen mechanism of PostgreSQL. This will give instant feedback without the polling delay.

  4. Start the pointbroadcaster with ./pointbroadcaster -w <PATH-TO>/web/ -h 0.0.0.0

    Will use RabbitMQ per default.

  5. Testing in the browser.

    Goto http://<SERVER>:8080/ to test the sample OpenLayers application. Goto http://<SERVER>:8080/events.html to test the sample server-sent events web application.

Development

See the file DEVELOPMENT.md for build instructions on GNU/Linux.

Support

Please use Bitbucket for questions: https://bitbucket.org/s_l_teichmann/pointstream/issues

License

This is Free Software covered by the terms of the 2-clause BSD license.
See LICENSE file for details.
(c) 2015 by Intevation GmbH

See licenses/README.md for more information.

Contact

For commercial support, additional information or custom modifications please contact:

Intevation GmbH <intevation@intevation.de>
Neuer Graben 17
49074 Osnabrück, Germany
http://www.intevation.de/contact.en.html

The public development platform can be found at: https://bitbucket.org/s_l_teichmann/pointstream