跳到主要内容

Android集成Websocket消息实时推送

在使用GoEasy进行消息的接收和发送之前,需要先初始化GoEasy对象, 并建立与GoEasy服务器的连接。

集成Android SDK

添加SDK依赖

    dependencies {
implementation 'io.goeasy:goeasy-client-java:0.2.0'
}

Demo源码下载

Github下载 Gitee下载

初始化GoEasy

    //初始化GoEasy,新加坡host:singapore.goeasy.io
GoEasy.init("hangzhou.goeasy.io", "您的appkey", this.getApplicationContext());

建立Websocket连接

    GoEasy.connect(new ConnectEventListener() {

@Override
public void onSuccess(GResult data) {
Log.i("GoEasy","连接成功");
}

@Override
public void onFailed(GResult error) {
Log.i("GoEasy","Failed to connect GoEasy, code:" + error.getCode() + ",error:" + error.getData());
}

@Override
public void onProgress(int attempts) {
Log.i("GoEasy", "GoEasy connect progress attempts: " + attempts);
}
});

订阅(接收)消息

    GPubSub.subscribe("test_channel", new SubscribeEventListener() {
@Override
public void onMessage(PubSubMessage message) {
Log.i("GoEasy",message.getContent());
}

@Override
public void onSuccess(GResult data) {
Log.i("GoEasy","订阅成功");
}

@Override
public void onFailed(GResult error) {
Log.i("GoEasy","订阅失败,错误编码:" + error.getCode() + " 错误信息:" + error.getData());
}
});

发送消息

    PublishOptions options = new PublishOptions("test_channel", message);
GPubSub.publish(options, new GoEasyEventListener() {
@Override
public void onSuccess(GResult data) {
Log.i("GoEasy", data.getData().toString());
}

@Override
public void onFailed(GResult error) {
Log.i("GoEasy","消息发送失败,错误编码:" + error.getCode() + " 错误信息:" + error.getData());
}
});

取消订阅

    GPubSub.unsubscribe("test_channel", new GoEasyEventListener() {
@Override
public void onSuccess(GResult data) {
Log.i("GoEasy", "unsubscribe Success");
}

@Override
public void onFailed(GResult error) {
Log.i("GoEasy", "unsubscribe Failed, code:" + error.getCode() + " content:" + error.getData());
}
});

断开连接

    GoEasy.disconnect(new GoEasyEventListener() {
@Override
public void onSuccess(GResult data) {
Log.i("GoEasy", "Disconnect Success");
}

@Override
public void onFailed(GResult error) {
Log.i("GoEasy", "Disconnect Failed, code:" + error.getCode() + " content:" + error.getData());
}
});