A node.js app to demonstrate the use of websockets via the Automatic Events API. It maps real-time events on a map.
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.
A version of this application is available at https://automatic-events-websocketdemo.herokuapp.com.
Click this button to instantly deploy this app to Heroku. You'll need an Automatic client ID and secret.
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
.
brew install node
npm install gulp -g
npm install
This will also grab frontend packages needed from bower and put them in public/bower_components
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.
DEBUG=automatic-events-websocket-demo gulp develop
Open localhost:3000
in your browser.
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
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.
Please write to developer@automatic.com if you have any questions or need help.
This project is licensed under the terms of the Apache 2.0 license.