Skip to content

Node.js example app that uses websockets to listen to Automatic’s Events API

License

Notifications You must be signed in to change notification settings

mfarley281/Automatic-Events-Websocket-Demo

Repository files navigation

Automatic Events Websocket Demo App

A node.js app to demonstrate the use of websockets via the Automatic Events API. It maps real-time events on a map.

websocket-screenshot

It make two types of websocket connections. One is to https://stream.automatic.com to stream events for all authorized users. The second type is a connect to each logged-in user's browsers. The app listens to events for all authorized users of this app, but only sends to user's browsers their own events. The result is that each user sees a realtime stream of their own vehicle events on a map.

The app is designed responsively to work well in mobile browsers.

Demo

A version of this application is available at https://automatic-events-websocketdemo.herokuapp.com.

One-Click deploy to Heroku

Click this button to instantly deploy this app to Heroku. You'll need an Automatic client ID and secret.

Deploy

After deploying, you will need to use the Automatic Developer Apps Manager to set your application's redirect URL to match the Heroku app name you selected when deploying. For instance, if you name your app automatic-test in Heroku your redirect URL should be https://automatic-test.herokuapp.com/redirect. Note that the URLs must start with https.

Running Locally

Install node and gulp

brew install node

npm install gulp -g

Install required packages from NPM and Bower:

npm install

This will also grab frontend packages needed from bower and put them in public/bower_components

Configure your client id and client secret

Copy the file config-sample.json to config.json and add your Automatic client id and client secret. Alternatively, create environment variables named AUTOMATIC_CLIENT_ID and AUTOMATIC_CLIENT_SECRET.

Get a mapbox access token and add it to the top of the public/javascripts/index.js file.

Run the app

DEBUG=automatic-events-websocket-demo gulp develop

View the app

Open localhost:3000 in your browser.

Testing locally, skipping OAuth

You can test locally as a logged in user, bypassing OAuth by including an TOKEN and USER_ID when running the app.

DEBUG=automatic-events-websocket-demo USER_ID=<YOUR_USER_ID> TOKEN=<YOUR-AUTOMATIC-ACCESS-TOKEN> gulp develop

Deploying

If you have the heroku toolbelt installed, you can create, configure and deploy this app to Heroku. To create an app:

heroku create

If you already created an app, add it as a git remote:

git remote add heroku YOUR-HEROKU-GIT-URL

Configure the heroku app's environment variables:

heroku config:add AUTOMATIC_CLIENT_ID=<YOUR AUTOMATIC CLIENT ID>
heroku config:add AUTOMATIC_CLIENT_SECRET=<YOUR AUTOMATIC CLIENT SECRET>
heroku config:add SESSION_SECRET=<YOUR SESSION SECRET>

Deploy your app to heroku:

git push heroku master

See deploying a node.js app for more information.

Support

Please write to developer@automatic.com if you have any questions or need help.

License

This project is licensed under the terms of the Apache 2.0 license.

About

Node.js example app that uses websockets to listen to Automatic’s Events API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published