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