Primus

Primus Android

License

License

MIT
GroupId

GroupId

io.cine
ArtifactId

ArtifactId

primus
Last Version

Last Version

0.0.4
Release Date

Release Date

Type

Type

aar
Description

Description

Primus
Primus Android
Source Code Management

Source Code Management

https://github.com/cine-io/primus-android

Download primus

How to add to project

<!-- https://jarcasting.com/artifacts/io.cine/primus/ -->
<dependency>
    <groupId>io.cine</groupId>
    <artifactId>primus</artifactId>
    <version>0.0.4</version>
    <type>aar</type>
</dependency>
// https://jarcasting.com/artifacts/io.cine/primus/
implementation 'io.cine:primus:0.0.4'
// https://jarcasting.com/artifacts/io.cine/primus/
implementation ("io.cine:primus:0.0.4")
'io.cine:primus:aar:0.0.4'
<dependency org="io.cine" name="primus" rev="0.0.4">
  <artifact name="primus" type="aar" />
</dependency>
@Grapes(
@Grab(group='io.cine', module='primus', version='0.0.4')
)
libraryDependencies += "io.cine" % "primus" % "0.0.4"
[io.cine/primus "0.0.4"]

Dependencies

compile (1)

Group / Artifact Type Version
com.koushikdutta.async : androidasync jar 1.3.8

Project Modules

There are no modules declared in this project.

Primus Android Library

This is a very simple Primus client for Android. I've only tested with Primus setup using the SockJS transformer.

Installation

Add the following to your build.gradle.

dependencies {
  compile 'io.cine:primus:0.0.4'
}

Ensure Maven central is included in your build.gradle. This should happen by default when building a project with Google's recommended Android IDE, Android Studio.

apply plugin: 'android'
buildscript {
  repositories {
    mavenCentral()
  }
}
repositories {
  mavenCentral()
}

Download primus-android to your application with ./gradlew build.

Usage

AndroidManifest.xml

Primus uses the internet. We need permission for that.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.yourpackage">
  <!-- Make sure to include the internet permission -->
  <uses-permission android:name="android.permission.INTERNET" />
</manifest>

Initialization

import io.cine.primus.Primus;

public class MainActivity extends Activity {
  private Primus primus;
  private final String PRIMUS_URL = "http://example.com/primus";
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    primus = Primus.connect(this, PRIMUS_URL);
    Primus.PrimusOpenCallback openCallback = new Primus.PrimusOpenCallback() {
      @Override
      public void onOpen() {
        // Websocket open
      }
    };
    Primus.PrimusDataCallback dataCallback = new Primus.PrimusDataCallback() {
      @Override
      public void onData(JSONObject data) {
        //got data
      }
    });
    primus.setOpenCallback(openCallback);
    primus.setDataCallback(dataCallback);
  }
}

Sending data

try {
  JSONObject j = new JSONObject();
  j.put("some", "data");
  primus.send(j);
} catch (JSONException e) {
  e.printStackTrace();
}

Ending

  primus.end();

Features

  1. Auto reconnecting using exponential backoff
  • heartbeat
  • converting messages to a JSONObject
  • waiting until connection is ready to send messages
io.cine

cine.io

Versions

Version
0.0.4
0.0.3
0.0.2
0.0.1