안드로이드 웹 소켓 인스턴트 통신

자바 웹 소켓 프레임 워크

GitHub의 주소 : https://github.com/TooTallNate/Java-WebSocket

현재 이상 오천 스타, 또한 유지 보수 업데이트가이 문서는 안정적인 인스턴트 메시징을 달성하기 위해이 오픈 소스 라이브러리를 사용하는 방법에 대해 설명합니다

첫째,의 도입 자바 웹 소켓

1 build.gradle 첨가

구현 "org.java - 웹 소켓 : 자바 웹 소켓 : 1.4.0" 

2, 요청 권한에 네트워크에 가입하기

<사용-권한은 안드로이드 : 이름 = "android.permission.INTERNET은을"/>

3, 새로운 클라이언트 클래스는
클라이언트 클래스를 생성하고 상속 WebSocketClient, 다음과 같이 네 가지 추상 메소드와 생성자를 구현해야한다 :

공용 클래스 JWebSocketClient이 WebSocketClient {확장 
    공공 JWebSocketClient (URI serverUri를) { 
        슈퍼 (serverUri, 새로운 Draft_6455 ()); 
    } 

    @Override 
    공개 무효으로 onOpen (ServerHandshake의 handshakedata) { 
        Log.e ( "JWebSocketClient" "으로 onOpen ()"); 
    } 

    @Override 
    공공 무효의 onMessage (문자열 메시지) { 
        Log.e ( "JWebSocketClient", "의 onMessage ()"); 
    } 

    @Override 
    공개 무효으로 onClose (INT 코드 문자열 이유로 원격 부울) { 
        Log.e ( "JWebSocketClient" "으로 onClose ()"); 
    } 

    @Override  
    {공공 무효의 OnError (예외 예를)
        Log.e ( "JWebSocketClient", "

 

상기으로 onOpen () 메소드는 차례로 연결된 웹 소켓 호출에서의 onMessage () 메시지가 수신 될 때 메소드가 호출 될 때,으로 onClose () 메소드는 연결이 끊긴의 OnError () 메소드 때 상기 접속 에러를 호출 할 때 호출 될 때. 새로운 Draft_6455의 생성자 () 사용자가 작성하거나이를 작성하지 프로토콜 버전의 사용을 나타냅니다.

(4), 웹 소켓 연결 설정
의 연결을 설정하는 경우에만 다음 통화 연결 방법은 WebSocketClient 개체를 재사용하지 않습니다 주목해야한다이 클라이언트를 초기화 할 필요가 초기화를 반복 할 수없는, 나머지는 현재 클라이언트 호출 할 수 있습니다.

URI = URI.create URI를 ( "WS : // *******"); 
JWebSocketClient 클라이언트 = 새로운 새로운 JWebSocketClient (URI) { 
    @Override 
    공공 무효의 onMessage (문자열 메시지) { 
        // 메시지가 수신 메시지는 
        로그 전화부 ( "JWebSClientService", 메시지); 
    } 
};

 

의 onMessage () 메소드를 재기록 할 수있는 수신 메시지의 처리를 용이하게하기 위해. 초기화 고객은 웹 소켓 주소의 끝을 통과 (: 테스트 주소 필요 : WS //echo.websocket.org ,이 같은 웹 소켓 프로토콜 주소 보이는 뭔가를)
WS : // IP 주소 : 포트 번호

 연결 () 메서드 또는 connectBlocking을 연결하는 데 사용할 수 있습니다 () 메소드는 connectBlocking을 권장 () 메소드, 더 대기 작업의 connectBlocking, 윌 다음 연결을 다시 보내는

{시도 
    client.connectBlocking를 (); 
} 캐치 (예외 : InterruptedException 전자) { 
    e.printStackTrace (); 
}

실행되었음을으로 onOpen () 메소드를 볼 수있는 클라이언트를 실행 한 결과,이 연결을 설정하고, 상기 웹 소켓 것을

도 5는, 메시지를 전송하는 단계
는 다음과 같이, 메시지 송신하기 만 호 () 메소드를 보낸다
경우 (클라이언트 = 널 (null) && client.isOpen (!)) { 
    client.send ( "你好"); 
}

 6, 근접 소켓 커넥터
근접 호 접속 확대 ()에있어서, 마지막 반복 WebSocketClient 인스턴스화 목적을 피하기 위해, 목표는 소정의 블랭킹 기간 동안 닫히고. 

/ ** 
 *断开连接
 * / 
개인 무효 closeConnect () { 
    {시도 
        하면 {(널 (null) = 클라이언트!) 
            client.close (); 
        } 
    } 캐치 (예외 전자) { 
        e.printStackTrace (); 
    } 마지막으로 { 
        클라이언트 = NULL; 
    } 
}

  

 

참고로 : https://www.jianshu.com/p/7b919910c892

추천

출처www.cnblogs.com/changyiqiang/p/12161601.html