1. 들어가기 전
- 스프링 서버와 연동 테스트
- https://hwihyeon.tistory.com/30
2. dependency 추가
- bulid.gralde (Module: app)
//버전 확인 : https://square.github.io/okhttp/
implementation("com.squareup.okhttp3:okhttp:4.9.3")
3. 코드 작성
- 다른 통신과 마찬가지로 유지보수 및 가독성을 위해 별도의 파일로 구성
- listener 선언 시 자동으로 구성
- java > com.hhk.myapplication > common > HttpWebSocket
package com.hhk.myapplication.common;
import android.util.Log;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import okhttp3.WebSocket;
import okhttp3.WebSocketListener;
import okio.ByteString;
public class HttpWebSocket {
public static String WEB_SOCKET_URL = "ws://192.168.0.10:8080/homepage/websocket.message";
public static WebSocketListener listener = new WebSocketListener() {
@Override
public void onClosed(@NotNull WebSocket webSocket, int code, @NotNull String reason) {
super.onClosed(webSocket, code, reason);
}
@Override
public void onClosing(@NotNull WebSocket webSocket, int code, @NotNull String reason) {
super.onClosing(webSocket, code, reason);
Log.d("TLOG","소켓 onClosing");
webSocket.close(1000, null);
webSocket.cancel();
}
@Override
public void onFailure(@NotNull WebSocket webSocket, @NotNull Throwable t, @Nullable okhttp3.Response response) {
super.onFailure(webSocket, t, response);
Log.d("TLOG","소켓 onFailure : " + t.toString());
}
@Override
public void onMessage(@NotNull WebSocket webSocket, @NotNull String text) {
super.onMessage(webSocket, text);
Log.d("TLOG", "text 데이터 확인 : " + text.toString());
}
@Override
public void onMessage(@NotNull WebSocket webSocket, @NotNull ByteString bytes) {
super.onMessage(webSocket, bytes);
Log.d("TLOG", "ByteString 데이터 확인 : " + bytes.toString());
}
@Override
public void onOpen(@NotNull WebSocket webSocket, @NotNull okhttp3.Response response) {
super.onOpen(webSocket, response);
Log.d("TLOG", "전송 데이터 확인 : " + webSocket + " : " + response);
webSocket.close(1000, null);
}
};
}
- Activity 부분 (메시지 전송 부분)
public void sendWebSocket() {
try {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(WEB_SOCKET_URL).build();
client.newWebSocket(request, HttpWebSocket.listener).send("테스트 메시지!");
client.dispatcher().executorService().shutdown();
}catch(Exception e) {
Log.e("TLOG", "MAIN 소켓 통신 오류 : " + e.toString());
}
}
4. 결과 확인
'안드로이드 > 안드로이드_java' 카테고리의 다른 글
안드로이드 - 버터나이프 적용 (0) | 2022.04.12 |
---|---|
안드로이드 Volley 적용 및 스프링 서버 데이터 통신 구축 (0) | 2022.04.11 |
안드로이드 Retrofit2 적용 및 스프링 서버 데이터 통신 구축 (0) | 2022.04.08 |
FCM Push(Firebase 기반) 알림 메시지 만들기 (0) | 2022.03.24 |
상태표시줄 알림 만들기 (0) | 2022.03.24 |