package example;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.logging.*;
import com.caucho.websocket.*;
/**
* The HelloWebSocketServlet validates the initial HTTP request and
* dispatches a new WebSocket connection to the "hello" listener,
* implemented by HelloWebSocketListener.
*/
public class HelloWebSocketServlet extends GenericServlet {
private static final Logger log
= Logger.getLogger(HelloWebSocketServlet.class.getName());
public void service(ServletRequest request,
ServletResponse response)
throws IOException, ServletException
{
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
/*
* Process the handshake, selecting the protocol to be used. Since we
* only understand "hello", return 404 for any known protocol.
*/
String protocol = req.getHeader("Sec-WebSocket-Protocol");
WebSocketListener listener;
if ("hello".equals(protocol)) {
listener = new HelloWebSocketListener();
res.setHeader("Sec-WebSocket-Protocol", "hello");
}
else {
res.sendError(HttpServletResponse.SC_NOT_ACCEPTABLE);
return;
}
WebSocketServletRequest wsRequest = (WebSocketServletRequest) request;
wsRequest.startWebSocket(listener);
}
}