WebSocket 연결을 유지하면서 (몇 시간 또는 며칠 이상) 백그라운드에서 실행 되며 정기적으로 서버에 일부 데이터를 보내는 내 Android 앱에 서비스 를 추가하고 싶습니다 .
이제 Java 용 WebSocket 라이브러리가 많이있는 것 같습니다. 어떤 라이브러리를 사용해야하는지 잘 모르겠습니다.
GitHub의 TooTallNate / Java-WebSocket 설명 : 100 % Java로 작성된 기본 WebSocket 클라이언트 및 서버 구현입니다. http://java-websocket.org/- 이것은 "android websocket"인터넷 검색의 첫 번째 결과 와 연결되어 있습니다 . 그러나 특히 SSL 연결과 관련하여 몇 가지 공개 문제가 있으며 현재 적극적으로 유지 관리되지 않는 것 같습니다.
koush / AndroidAsync GitHub의 설명 : 비동기 소켓, http (클라이언트 + 서버), 웹 소켓 및 Android 용 socket.io 라이브러리. 스레드가 아닌 nio를 기반으로합니다. -다시 많은 공개 이슈가 있지만, 활동적으로 유지 보수 / 작업중인 것 같습니다.
웹 사이트의 프로젝트 Tyrus 설명 : JSR 356 : WebSocket 용 Java API-참조 구현-Oracle에서 작성합니다. Android에서 작동하는지 확실하지 않습니다.
웹 사이트의 Jetty WebSocket 클라이언트 API 정보 : Jetty는 또한 WebSocket 서버와 쉽게 대화 할 수 있도록 Jetty WebSocket 클라이언트 라이브러리를 제공합니다. -다시 : Android에서 작동하는지 확실하지 않습니다.
codebutler / android-websockets GitHub의 설명 : Android 용 Bare Minimum Websockets (hybi13 / RFC) 클라이언트-이것은 schwiz / android-websocket-example 에서 사용되며, 이는 StackOverflow-question에 허용되는 답변입니다 . Android 기기에서 깨우기 잠금없이 인터넷에 대한 TCP 연결을 유지 하시겠습니까? ".
GitHub의 대기 / wasync 설명 : Node.js, Android 및 Java 용 폴백 전송 클라이언트 라이브러리가있는 WebSocket http://async-io.org
TakahikoKawasaki / nv-websocket-client GitHub의 설명 : Java의 고품질 WebSocket 클라이언트 구현.
square / okhttp GitHub의 설명 : Android 및 Java 애플리케이션을위한 HTTP + SPDY 클라이언트. http://square.github.io/okhttp/ -
그것은이 웹 소켓 모듈을 .으로 scorpiodawg 언급 , OkHttp은 내장 된 웹 소켓 지원 버전 3.5 있기 때문이다.GitHub의 firebase / TubeSock 설명 : Java로 구현 된 WebSocket 클라이언트 라이브러리
Autobahn | Android ( GitHub ) 웹 사이트 설명 : Autobahn | Android는 기본 모바일 WebSocket / WAMP를 생성하기 위해 WebSocket 프로토콜 및 웹 애플리케이션 메시징 프로토콜 (WAMP)을 구현하는 Autobahn 프로젝트에 의해 생성 된 Java / Android 용 오픈 소스 네트워킹 라이브러리입니다. 고객. - cloudsurfin는 지적 이 WSS을 지원하지 않는다는 점.
또한 Android 용 기본 socket.io 클라이언트 라이브러리가 있습니다.
- nkzawa / socket.io-client.java GitHub의 설명 : Socket.IO v1.0 이상과 호환되는 Java 용 전 기능 Socket.IO 클라이언트 라이브러리.
어쨌든 웹 프론트 엔드에 nodejs / socket.io를 사용할 계획이기 때문에 socket.io Android 클라이언트를 사용하는 것이 편리합니다. 그러나 네이티브 클라이언트는 상당히 어리고 몇 가지 공개 된 문제가 있습니다. 또한 WebSocket 지원이 클라이언트 측에서 보장 될 수 있기 때문에 안드로이드 앱이 socket.io 클라이언트 라이브러리 (socket.io 1.0 서버와 호환되는 것을 제외하고)를 사용하는 이점이 없다는 것을 이해합니다. .
내 요구 사항은 다음과 같습니다.
- Android API 9 이상과의 호환성
- SSL을 통한 연결 가능성
- 영구적 인 깨우기 잠금을 유지하지 않고도 오랫동안 연결 유지
- 사용 가능한 nodejs websocket 서버 구현 또는 socket.io와의 호환성
이러한 요구 사항에 적합한 라이브러리 중 어떤 것이 있습니까?