Skip to content

Commit 118ccbd

Browse files
committed
WebSocket client example with OkHttp
1 parent 8539d25 commit 118ccbd

File tree

3 files changed

+63
-1
lines changed

3 files changed

+63
-1
lines changed

okhttp-examples/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<dependency>
1919
<groupId>com.squareup.okhttp3</groupId>
2020
<artifactId>okhttp</artifactId>
21-
<version>3.4.2</version>
21+
<version>3.5.0</version>
2222
</dependency>
2323
<dependency>
2424
<groupId>junit</groupId>
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.howtoprogram.okhttp.websocket;
2+
3+
import okhttp3.Response;
4+
import okhttp3.WebSocket;
5+
import okhttp3.WebSocketListener;
6+
import okio.ByteString;
7+
8+
public final class EchoWebSocketListener extends WebSocketListener {
9+
private static final int NORMAL_CLOSURE_STATUS = 1000;
10+
11+
@Override
12+
public void onOpen(WebSocket webSocket, Response response) {
13+
webSocket.send("Knock, knock!");
14+
webSocket.send("Hello!");
15+
webSocket.send(ByteString.decodeHex("deadbeef"));
16+
webSocket.close(NORMAL_CLOSURE_STATUS, "Goodbye!");
17+
}
18+
19+
@Override
20+
public void onMessage(WebSocket webSocket, String text) {
21+
System.out.println("Receiving: " + text);
22+
}
23+
24+
@Override
25+
public void onMessage(WebSocket webSocket, ByteString bytes) {
26+
System.out.println("Receiving: " + bytes.hex());
27+
}
28+
29+
@Override
30+
public void onClosing(WebSocket webSocket, int code, String reason) {
31+
webSocket.close(NORMAL_CLOSURE_STATUS, null);
32+
System.out.println("Closing: " + code + " " + reason);
33+
}
34+
35+
@Override
36+
public void onFailure(WebSocket webSocket, Throwable t, Response response) {
37+
t.printStackTrace();
38+
}
39+
40+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.howtoprogram.okhttp.websocket;
2+
3+
import okhttp3.OkHttpClient;
4+
import okhttp3.Request;
5+
import okhttp3.WebSocket;
6+
7+
public class WebSocketClientTest {
8+
9+
public static void main(String... args) {
10+
11+
OkHttpClient client = new OkHttpClient();
12+
13+
Request request = new Request.Builder().url("ws://echo.websocket.org").build();
14+
EchoWebSocketListener listener = new EchoWebSocketListener();
15+
16+
WebSocket ws = client.newWebSocket(request, listener);
17+
18+
// Trigger shutdown of the dispatcher's executor so this process can
19+
// exit cleanly.
20+
client.dispatcher().executorService().shutdown();
21+
}
22+
}

0 commit comments

Comments
 (0)