CSocket.getInstance().init(context, new CSocket.OnServiceListener() {
@Override
public void onBindSuccess() {
Log.i(TAG, "===>onBindSuccess");
startSocket();
}
@Override
public void onBindError() {
Log.i(TAG, "===>onBindError");
}
@Override
public void onUnBind() {
Log.i(TAG, "===>onUnBind");
}
});
private void startSocket() {
ClientConfig connConfig = new ClientConfig("default");
connConfig.setFrameworkType(SocketFrameworkType.SOCKET_JAVA_BLOCK);
connConfig.setWebsocketUrl("ws://172.16.11.20:9802");
connConfig.setReconnectInterval(2000);
connConfig.setSocketUrl("192.168.22.110:9802");
connConfig.setClientId("ws-test");
//配置心跳定时器
DogManager.getInstance().setDog(new ErhaDog(this)).setDogListener(new DogFather.DogListener() {
@Override
public void lookup(int count, int maxCount) {
Log.i(TAG, "ping====>" + count + "#" + maxCount);
CSocket.getInstance().sendMessage("ws-test", buildHeartbeat().toString());
}
});
CSocket.getInstance().start(connConfig, new OnCSocketListener() {
@Override
public void onOpen(String channelId, byte[] response) {
Log.i(TAG, "onOpen====>" + channelId);
DogManager.getInstance().lookup();
}
@Override
public void onMessage(String channelId, String message) {
Log.i(TAG, "onMessage====>" + channelId + "#" + message);
DogManager.getInstance().feedDog();
}
@Override
public void onFailure(String channelId, String exceptionClass, String msg) {
super.onFailure(channelId, exceptionClass, msg);
Log.e(TAG, "onFailure====>" + channelId + "#" + exceptionClass + "#" + msg);
}
@Override
public void onReconnecting(String clientId, int count) {
Log.e(TAG, "onReconnecting====>" + clientId + "#" + count);
}
});
}