/centrifuge-java

Java client to communicate with Centrifugo over Websockets.

Primary LanguageJava

centrifuge-java

Centrifugo java client

This is forked from the android client with android specific code refactored.

Usage

Create client and connect:
String centrifugoAddress = "wss://centrifugo.herokuapp.com/connection/websocket";
String userId = "...";
String userToken = "..."; //nullable
String token = "...";
String tokenTimestamp = "...";
Centrifugo centrifugo = new Centrifugo.Builder(centrifugoAddress)
                        .setUser(new User(userId, userToken))
                        .setToken(new Token(token, tokenTimestamp))
                        .build();
centrifugo.connect();
Subscribe to channel:
String channel = "my-channel";
centrifugo.subscribe(new SubscriptionRequest(channel));
Listen to events:
Connection events
centrifugo.setConnectionListener(new ConnectionListener() {

        @Override
        public void onWebSocketOpen() {
        }

        @Override
        public void onConnected() {
        }

        @Override
        public void onDisconnected(final int code, final String reason, final boolean remote) {
        }

});
Subscription events
centrifugo.setSubscriptionListener(new SubscriptionListener() {

        @Override
        public void onSubscribed(final String channelName) {
        }

        @Override
        public void onUnsubscribed(final String channelName) {
        }

        @Override
        public void onSubscriptionError(final String channelName, final String error) {
        }

});
Messages, published into channel
centrifugo.setDataMessageListener(new DataMessageListener() {

        @Override
        public void onNewDataMessage(final DataMessage message) {
        }

});
Join and leave events
centrifugo.setJoinLeaveListener(new JoinLeaveListener() {

        @Override
        public void onJoin(final JoinMessage joinMessage) {
            message(joinMessage.getUser(), " just joined " + joinMessage.getChannel());
        }

        @Override
        public void onLeave(final LeftMessage leftMessage) {
            message(leftMessage.getUser(), " just left " + leftMessage.getChannel());
        }

});
Request information

You can request history of the channel

centrifugo.requestHistory("my-channel")

Installation

Add

compile 'org.coindirect:centrifuge-java:0.37'

to dependencies in your build.gradle

so your build.gradle looks something like this:


repositories {
    mavenCentral()
    maven { url "https://oss.sonatype.org/content/repositories/releases/" }
}

...

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'org.coindirect:centrifuge-java:0.37'
}

Have a look at example application