Simple socket.io push and tracking engine.
CoffeeScript JavaScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
auth
dist
lib
public
routes
test
views
.gitignore
.travis.yml
README.md
app.coffee
index.js
package.json

README.md

Pharos

Build Status

Pharos is a real-time pushing alternative to Pusher which is easy to deploy on dotCloud for free (I usually prefer Heroku, but having no WebSocket support sucks).

These are some of the features I want to implement:

  • Authenticating users via an auth-token and several strategies.
  • Multiple Workers who push your data to the users. Connect to the master via Redis pub/sub.
  • Logging ALL the messages.
  • Sexy Web Interface to check the logs and emit or repush messages.
  • Pipes created either via the server or the client itself. Should be a private room for multiple users to send messages without reaching your app to relieve your load.
  • RESTful API to push messages to the folks.
  • Public and Private Channels. For example a channel named "notification" may be private. You may push a message to user XYZ in this channel and only this user should receive the message. A public channel could be something like a global chat, where you push the message without specifying special users.
  • Stats for analytical reasons.
  • Tests to run the whole thing in production.
  • Resend Messages when a client disconnects for ~5 seconds -> reloading the page.

Read more about it on my blog post.

Licence

MIT, of course!

API

# Push an object to a single user.
curl -d "to=1&message={\"foo\":\"bar\"}" \
     http://:PASSWORD@example.com/push/CHANNEL
# Push an object to multiple users.
curl -d "to[]=1&to[]=2&message={\"foo\":\"bar\"}" \
     http://:PASSWORD@example.com/push/CHANNEL
# Broadcast some JavaScript to get evaluated.
curl -d "message=alert('Hello World');" \
     http://:PASSWORD@example.com/push/CHANNEL

Installing

Coming soon.

How to contribute?

Fork bro, fork!