[webSocket] 클라이언트 상태 유지하기

첸첸·2021년 11월 11일
0

webSocket in java

목록 보기
4/9

컨테이너는 각각의 연결을 위한 endpoint 클래스를 생성하기 때문에, 클라이언트 상태 정보를 저장할 필요가 있다. Session.getUserProperties 메소드는 유저 특성을 저장할 수 있는 map을 제공한다.

@ServerEndpoint("/delayedecho")
public class DelayedEchoEndpoint {
   @OnOpen
   public void open(Session session) {
      session.getUserProperties().put("previousMsg", " ");
   }
   @OnMessage
   public void message(Session session, String msg) {
      String prev = (String) session.getUserProperties()
                                    .get("previousMsg");
      session.getUserProperties().put("previousMsg", msg);
      try {
         session.getBasicRemote().sendText(prev);
      } catch (IOException e) { ... }
   }
}

연결 된 클라이언트들에 대한 정보를 저장하기 위해서 class variables (= static variables)를 사용할 수 있지만, 그 정보에 안전하게 접근해야 할 책임이 있다.

참고 : https://docs.oracle.com/javaee/7/tutorial/websocket006.htm

0개의 댓글