웹소켓 어플리케이션에서 서버는 websocket endpoint를 만들고, client는 endpoint의 URI를 이용하여 서버와 연결한다.이 연결이 지속되고 있는 한 server와 client는 언제나 서로 메세지를 주고 받을 수 있으며, 접속을 언제든지 종료 시킬
The JAVA EE 는 웹소켓을 위한 Java API를 제공하고 있다. Java API는 WebSocket 두 종류의 endpoint를 만드는 방법을 제공하고 있다.✔ 기본 방법Endpoint 클래스는 세가지의 lifecycle 메소드를 가진다 1.onOpen
session 객체는 endpoint의 annotated lifecycle methods의 파라미터로 사용 가능상대방에 대한 응답 메세지인 경우 , 메세지를 받는 메소드의 내부에서 Session객체 사용 가능(@OnMessage)응답으로서의 메세지를 보내는 경우가 아니
컨테이너는 각각의 연결을 위한 endpoint 클래스를 생성하기 때문에, 클라이언트 상태 정보를 저장할 필요가 있다. Session.getUserProperties 메소드는 유저 특성을 저장할 수 있는 map을 제공한다.연결 된 클라이언트들에 대한 정보를 저장하기 위해
Java API는 encoders와 decoders를 통해 WebSocket 메세지와 자바 타입간의 컨버팅을 제공하고 있다.encoder는 자바 객체를 JSON,XML, binary 형식으로 Websocket의 메세지로 전달 될 수 있게 한다.decoder는 Webso
@ServerEndpoint 를 사용해서 URO 템플릿을 사용할 수 있다.예를 들어 아래와 같이 작성하면endpoint가 local 서버 포트 8080 에 chatapp라는 이름으로 배포가 되어있다면 아래의 어떤 URI를 통해서도 연결이 가능하다.어노테이션 된 endp
에러 핸들링을 위해 @onError 어노테이션 사용해당 메소드는 연결문제, 메세지 핸들러로부터의 런타임에러,디코딩 된 메세지들의 변환 에러가 발생될 때 호출 된다. 참고 https://docs.oracle.com/javaee/7/tutorial/websocke
이전 포스팅을 기반으로 간단한 웹채팅프로그램을 만들어봤다.자바스크립트를 사용해서 클라이언트를 만들었는데, 이전 포스팅대로 만들면...서버와 연결이 안됐다. 거의 몇시간 삽질을 하고 나서 찾으니 스프링부트에서는 자바스크립트에서 기본제공하는 웹소켓을 사용하지 않는다고 한다
STOMP가 뭔지는 다른 블로그에서도 잘 설명하고 있으니...그냥 바로 코드로.. CONFIG