Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.mondoktamas:JavaPhoenixChannels:0.2.0'
}
dependencies {
implementation("com.github.mondoktamas:JavaPhoenixChannels:0.2.0")
}
<dependency>
<groupId>com.github.mondoktamas</groupId>
<artifactId>JavaPhoenixChannels</artifactId>
<version>0.2.0</version>
</dependency>
libraryDependencies += "com.github.mondoktamas" % "JavaPhoenixChannels" % "0.2.0"
:dependencies [[com.github.mondoktamas/JavaPhoenixChannels "0.2.0"]]
JavaPhoenixChannels is a Java and Android client library for the Channels API in the Phoenix Framework. Its primary purpose is to ease development of real time messaging apps for Android using an Elixir/Phoenix backend. For more about the Elixir language and the massively scalable and reliable systems you can build with Phoenix, see http://elixir-lang.org and http://www.phoenixframework.org.
http://dl.bintray.com/eoinsha/java-phoenix-channels
as a Maven repositorydependencies {
...
compile('com.github.eoinsha:JavaPhoenixChannels:0.2') {
exclude module: 'groovy-all'
}
For a full sample Android chat app, check out the repository at https://github.com/eoinsha/PhoenixChatAndroid
The quick examples below are used with the Phoenix Chat Example
import org.phoenixframework.channels.*
def socket = new Socket('ws://localhost:4000/socket/websocket')
socket.connect()
def chan = socket.chan()
chan.join("rooms:lobby", null)
.receive("ignore", { -> println "IGNORE"})
.receive("ok", { envelope -> println "JOINED with $envelope" })
chan.on('new:msg', { -> println "NEW MESSAGE: $envelope"})
import org.phoenixframework.channels.*;
Socket socket;
Channel channel;
socket = new Socket("ws://localhost:4000/socket/websocket");
socket.connect();
channel = socket.chan("rooms:lobby", null);
channel.join()
.receive("ignore", new IMessageCallback() {
@Override
public void onMessage(Envelope envelope) {
System.out.println("IGNORE");
}
})
.receive("ok", new IMessageCallback() {
@Override
public void onMessage(Envelope envelope) {
System.out.println("JOINED with " + envelope.toString());
}
});
channel.on("new:msg", new IMessageCallback() {
@Override
public void onMessage(Envelope envelope) {
System.out.println("NEW MESSAGE: " + envelope.toString());
}
});
channel.on(ChannelEvent.CLOSE.getPhxEvent(), new IMessageCallback() {
@Override
public void onMessage(Envelope envelope) {
System.out.println("CLOSED: " + envelope.toString());
}
});
channel.on(ChannelEvent.ERROR.getPhxEvent(), new IMessageCallback() {
@Override
public void onMessage(Envelope envelope) {
System.out.println("ERROR: " + envelope.toString());
}
});
//Sending a message. This library uses Jackson for JSON serialization
ObjectNode node = new ObjectNode(JsonNodeFactory.instance)
.put("user", "my_username")
.put("body", message);
channel.push("new:msg", node);
To contribute, see the contribution guidelines and instructions.