Как указать URL-адрес для WebSocketServlet в Jetty? - PullRequest
1 голос
/ 10 февраля 2012

Я прочитал Создание WebSocket-Chat-приложения с Jetty , и я хотел бы создать простую эхо-websocket с использованием WebSocketServlet на Jetty.

Я создал свой WebSocketServlet так:

public class ChatSocketServlet extends WebSocketServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE html><html><body><h1>Chat</h1></body></html>");
    }

    @Override
    public WebSocket doWebSocketConnect(HttpServletRequest request, String protocol) {
        return new ChatWebSocket();
    }

    class ChatWebSocket implements OnTextMessage {

        private Connection connection;

        @Override
        public void onClose(int closeCode, String message) {
            System.out.println("onClose");
        }

        @Override
        public void onOpen(Connection connection) {
            this.connection = connection;
        }

        @Override
        public void onMessage(String data) {
            try {
                connection.sendMessage(data);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

}

Но какой URL я должен использовать для подключения к этому веб-сокету? Кажется, я не могу использовать @WebServlet (например, @WebServlet("/HelloServlet")), как я могу с HttpServlet. Я пытался подключиться к:

ws://localhost:8080/MyJavaWeb/ChatWebSocket

но возвращается Not Found. Есть ли другие аннотации для указания URL для WebSocketServlet? И я не знаю URL для получения вывода от doGet на этом сервлете.

...