Springboot 통합 웹 소켓 패키지 자바 클 라 이언 트, 원 격 웹 소켓 서버 정보 수신

4208 단어 WebSocket
인터넷 에는 자바 서버 와 HTML 클 라 이언 트 에 관 한 블 로그 가 많 지만 업무 중 에는 백 스테이지 대 백 스테이지 에 활용 해 야 할 것 이 많 습 니 다. 마이크로 서비스 니까 요.
이것 은 제 가 쓴 자바 클 라 이언 트 입 니 다. 이미 접속 되 었 습 니 다. 인증 이 가능 합 니 다.
1. pom 파일 설정 jar 패키지

      org.springframework.boot
      spring-boot-starter-websocket



    org.java-websocket
    Java-WebSocket
    1.4.0

2. 자바 websocket 클 라 이언 트 도구 류 만 들 기
package com.netposa.gat.platform.constant;



import lombok.extern.slf4j.Slf4j;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.drafts.Draft_6455;
import org.java_websocket.handshake.ServerHandshake;
import org.springframework.stereotype.Component;

import java.net.URI;
import java.net.URISyntaxException;

@Slf4j
@Component
public class JavaWebSocketClient {
    /**
     *          
     * @param uri
     * @return
     */
    public WebSocketClient getClient(String uri){
        try {
            //         
            WebSocketClient client = new WebSocketClient(new URI(uri),new Draft_6455()) {
                /**
                 *       
                 * @param serverHandshake
                 */
                @Override
                public void onOpen(ServerHandshake serverHandshake) {
                    log.info("===    ===");
                }
                /**
                 *          
                 * @param s
                 */
                @Override
                public void onMessage(String s) {
                    log.info("====          ===" + s);
                }
                /**
                 *       
                 * @param i
                 * @param s
                 * @param b
                 */
                @Override
                public void onClose(int i, String s, boolean b) {
                    log.info("    :::" + "i = " + i + ":::s = " + s +":::b = " + b);
                }
                /**
                 *       
                 * @param e
                 */
                @Override
                public void onError(Exception e) {
                    log.error("====    ====" + e.getMessage());
                }
            };
            //          
            client.connect();
            //      ,0      1               
            while(client.getReadyState().ordinal() == 0){
                try {
                    Thread.sleep(200);
                }catch (Exception e){
                    log.warn("        ,       ");
                }
                log.info("   .......");
            }
            //       0   ,         1   
            if (client.getReadyState().ordinal() == 1){
                return client;
            }
        }catch (URISyntaxException e){
            log.error(e.getMessage());
        }
        return null;
    }
}

3. websocket 을 연결 하 는 인터페이스 와 인터페이스 실현 류 를 만 들 고 구체 적 인 업무 논리 처 리 를 한다.
package com.netposa.gat.service.impl;
import com.alibaba.fastjson.JSON;
import com.netposa.gat.platform.constant.JavaWebSocketClient;
import com.netposa.gat.service.WebSocketClientService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.java_websocket.client.WebSocketClient;


@Service
@Component
@Slf4j
public class WebSocketClientServiceImpl implements WebSocketClientService {

    @Autowired
    private JavaWebSocketClient javaClient;

    @Override
    public void getRealTimeInformation() {

        String url = "ws://15.137.17.25:9000/api/cn/v1.0/ws/alarm/face/FCDE5939596F46A08846B8B48EA0B5BF";
        WebSocketClient client = this.javaClient.getClient(url);
    }

}
4、    

그 중 자바 웹 소켓 클 라 이언 트 의
public void onMessage(String s) {
    log.info("          :::" + s);
}

서버 에서 보 내 온 메 시 지 를 받 는 거 예요.

좋은 웹페이지 즐겨찾기