rxWebSocket is a simple reactive extension of OkHttp Websocket interface with support for Convertor Factories and Interceptors.
To Create a WebSocket with no convertors:
websocket = new RxWebsocket.Builder()
.build("wss://echo.websocket.org");
To Create a WebSocket with convertors(See sample application to add a simple Gson convertor or write your own):
websocket = new RxWebsocket.Builder()
.addConverterFactory(//YOUR OWN CONVERTOR)
.addReceiveInterceptor(data -> //Intercept the received data)
.build(okHttpClient, "wss://echo.websocket.org");
To Connect to the websocket:
websocket.connect()
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
this::logEvent,
this::logError
);
To Connect and Send data on a connected socket:
websocket.connect()
.flatMap(open -> open.client().send("Hello"))
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
this::logEvent,
this::logError
);
To Connect and Listen data on a connected socket:
websocket.connect()
.flatMapPublisher(open -> open.client().listen())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
this::logEvent,
this::logError
);
Step 1. Add the JitPack repository to your build file Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
implementation 'com.github.navinilavarasan:rxWebSocket:x.y.z'
}