11# JavaWebsocketClient also for Android
2- JavaWebsocketClient is library is simple library for Websocket connection for java and Android.
2+ JavaWebsocketClient is library is simple library for Websocket connection in rx for java and Android.
33It is designed to be fast and fault tolerant.
44
5+ Currently we use okhttp for websocket connection because okhttp is simple and well tested solution.
6+
57[ ![ Build Status] ( https://travis-ci.org/jacek-marchwicki/JavaWebsocketClient.svg?branch=master )] ( https://travis-ci.org/jacek-marchwicki/JavaWebsocketClient )
68
79## Content of the package
810
911* Example websockets server [ python twisted server] ( websockets-server/README.md )
10- * Imperative websocket client library ` websockets/ `
11- * Imperative websocket android example ` websockets-example/ `
1212* Rx-java websocket client library ` websockets-rxjava/ `
1313* Rx-java websocket android example ` websockets-rxjava-example/ `
1414
15- ## Imperative example
16-
17- Connect to server and send message on connected:
18-
19- ``` java
20- final NewWebSocket newWebSocket = new NewWebSocket (new SecureRandomProviderImpl (), new SocketProviderImpl ());
21- final WebSocketConnection connection = newWebSocket. create(SERVER_URI , new WebSocketListener () {
22- @Override
23- public void onConnected () throws IOException , InterruptedException , NotConnectedException {
24- connection. sendStringMessage(" register" );
25- }
26- });
27- connection. connect();
28- ```
29-
30- For more examples look:
31- * [ Android example] ( websockets-example/src/main/java/com/appunite/socket/MainActivity.java )
32- * [ Sample test] ( websockets/src/test/java/com/appunite/websocket/WebsocketTest.java )
33-
34-
3515## Reactive example
3616
3717How to connect to server:
3818
3919``` java
40- final Subscription subscribe = new RxWebSockets (new NewWebSocket (), SERVER_URI )
20+ final Request request = new Request .Builder ()
21+ .get()
22+ .url(" ws://10.10.0.2:8080/ws" )
23+ .build();
24+ final Subscription subscribe = new RxWebSockets (new OkHttpClient (), request)
4125 .webSocketObservable()
4226 .subscribe(new Action1<RxEvent > () {
4327 @Override
@@ -52,7 +36,7 @@ subscribe.unsubscribe();
5236Send message on connected:
5337
5438``` java
55- final Subscription subscribe = new RxWebSockets (newWebSocket, SERVER_URI )
39+ final Subscription subscription = new RxWebSockets (newWebSocket, request )
5640 .webSocketObservable()
5741 .subscribe(new Action1<RxEvent > () {
5842 @Override
@@ -65,12 +49,12 @@ final Subscription subscribe = new RxWebSockets(newWebSocket, SERVER_URI)
6549 }
6650 });
6751Thread . sleep(1000 );
68- subscribe . unsubscribe();
52+ subscription . unsubscribe();
6953```
7054
7155For examples look:
7256* Android example: [ Activity] ( websockets-rxjava-example/src/main/java/com/appunite/socket/MainActivity.java ) [ Presenter] ( websockets-rxjava-example/src/main/java/com/appunite/socket/MainPresenter.java )
73- * Example Real tests: [ RxJsonWebSocketsRealTest] ( websockets-rxjava-example/src/test/java/com/example/RxJsonWebSocketsRealTest .java ) , [ RxWebSocketsRealTest] ( websockets-rxjava-example/src/test/java/com/example/RxWebSocketsRealTest.java ) , [ SocketRealTest] ( websockets-rxjava-example/src/test/java/com/example/SocketRealTest.java )
57+ * Example Real tests: [ RxJsonWebSocketsRealTest] ( websockets-rxjava-example/src/test/java/com/example/RxObjectWebSocketsRealTest .java ) , [ RxWebSocketsRealTest] ( websockets-rxjava-example/src/test/java/com/example/RxWebSocketsRealTest.java ) , [ SocketRealTest] ( websockets-rxjava-example/src/test/java/com/example/SocketRealTest.java )
7458* [ Unit test] ( websockets-rxjava-example/src/test/java/com/example/SocketTest.java )
7559
7660## Rx-java with json parser
@@ -81,8 +65,14 @@ class YourMessage {
8165 public String error;
8266}
8367
84- final RxObjectWebSockets webSockets = new RxObjectWebSockets (new RxWebSockets (new NewWebSocket (), SERVER_URI ), new GsonSerializer (new Gson (), Message . class));
85- webSockets. webSocketObservable()
68+ final Request request = new Request .Builder ()
69+ .get()
70+ .url(" ws://10.10.0.2:8080/ws" )
71+ .build();
72+ final RxWebSockets rxWebSockets = new RxWebSockets (new OkHttpClient (), request)
73+ final ObjectSerializer serializer = new GsonObjectSerializer (new Gson (), Message . class)
74+ final RxObjectWebSockets webSockets = new RxObjectWebSockets (rxWebSockets), serializer);
75+ final Subscription subscription = webSockets. webSocketObservable()
8676 .compose(MoreObservables . filterAndMap(RxObjectEventMessage . class))
8777 .compose(RxObjectEventMessage . filterAndMap(YourMessage . class))
8878 .subscribe(new Action1<YourMessage > () {
@@ -91,33 +81,25 @@ webSockets.webSocketObservable()
9181 System . out. println(" your message: " + yourMessage. response);
9282 }
9383 });
84+ Thread . sleep(1000 );
85+ subscription. unsubscribe();
9486```
9587
96- ## Run examples from gradle
88+ ## Run example from gradle
9789
9890To run example first run [ websocket server] ( websockets-server/README.md ) , than update url to your host in:
9991* [ Rx-java Activity] ( websockets-rxjava-example/src/main/java/com/appunite/socket/MainActivity.java )
100- * [ Imperative Activity] ( websockets-example/src/main/java/com/appunite/socket/MainActivity.java )
101-
102- Reactive (rx-java) example:
10392
10493``` bash
10594./gradlew :websockets-rxjava-example:installDebug
10695```
10796
108- Imperative example:
109-
110- ``` bash
111- ./gradlew :websockets-example:installDebug
112- ```
113-
11497## How to add to your project
11598
11699to your gradle file:
117100
118101``` groovy
119- compile "com.appunite:websockets-java:2.1.0"
120- compile "com.appunite:websockets-rxjava:2.2.0"
102+ compile "com.appunite:websockets-rxjava:3.0.0"
121103```
122104
123105## License
0 commit comments