Я прочитал Создание 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
на этом сервлете.