@ServerEndpoint
를 사용해서 URI 템플릿을 사용할 수 있다.
예를 들어 아래와 같이 작성하면
@ServerEndpoint("/chatrooms/{room-name}")
public class ChatEndpoint {
...
}
endpoint가 local 서버 포트 8080 에 chatapp라는 이름으로 배포가 되어있다면 아래의 어떤 URI를 통해서도 연결이 가능하다.
http://localhost:8080/chatapp/chatrooms/currentnews
http://localhost:8080/chatapp/chatrooms/music
http://localhost:8080/chatapp/chatrooms/cars
http://localhost:8080/chatapp/chatrooms/technology
어노테이션 된 endpointsms path parameter를 @onOpen
,@onMessage
,@onClose
메소드의 인자로 받을 수 있다. 아래 예제는 endpoint가 @onOpen
메소드에 파라미터를 사용하여 클라이언트가 참여하고 싶은 채팅방을 결정한다.
@ServerEndpoint("/chatrooms/{room-name}")
public class ChatEndpoint {
@OnOpen
public void open(Session session,
EndpointConfig c,
@PathParam("room-name") String roomName) {
// Add the client to the chat room of their choice ...
}
}
참고
https://docs.oracle.com/javaee/7/tutorial/websocket008.htm