Skip to content

Latest commit

 

History

History
60 lines (34 loc) · 2.02 KB

README.textile

File metadata and controls

60 lines (34 loc) · 2.02 KB

Pusher module

This module lets you easily interact with the Pusher REST API from your Play application.

Usage

Using it is very simple :

Pusher pusher = new Pusher(appId, key, secret)

Or if you prefer you can add your application API access information to the application.conf file

#Pusher
pusher.appId = APP_ID
pusher.key = KEY
pusher.secret = SECRET

and do the following:

Pusher pusher = new Pusher();

Triggering an event on a channel

You can trigger an event on a channel and deliver a message to all the connected sockets:

HttpResponse response = pusher.trigger("my_channel", "event", "my_message");

This will return the following response if all goes well

202 ACCEPTED

You can also exclude a socket (usually the sender) from receiving the message by specifying its socket id:

pusher.trigger("my_channel", "event", "my_message", "socket_id");

Generating the authentication string

When a socket tries to connect to a private channel, it will make a POST request to /pusher/auth on your server. You will need to generate and return a JSON object containing the auth signature that allows the socket to connect to the private channel. That is really easy :

pusher.createAuthString(socketId, channelName);

Example

In your controller you can have something like this:

String socketId = params.get("socket_id);
String channelName = params.get("channel_name");
renderJSON(pusher.createAuthString(socketId, channelName));

You can also generate an auth signature to allow a socket to connect to a presence channel. In that case you will need to pass a PresenceChannelData object which has a userId field and a BasicUserInfo field.

Example

BasicUserInfo userInfo = new BasicUserInfo();
userInfo.setName("Joe");
PresenceChannelData channelData = new PresenceChannelData("userId", userInfo);
renderJSON(pusher.createAuthString(socketId, channelName, channelData));

Check out the Pusher Documentation for more information.