public AtmosphereResource<HttpServletRequest, HttpServletResponse> onRequest(AtmosphereResource<HttpServletRequest, HttpServletResponse> event) throws IOException { HttpServletRequest req = event.getRequest(); HttpServletResponse res = event.getResponse(); res.setContentType("text/html"); res.addHeader("Cache-Control", "private"); res.addHeader("Pragma", "no-cache"); if (req.getMethod().equalsIgnoreCase("GET")) { event.suspend(); } else if (req.getMethod().equalsIgnoreCase("POST")) { res.setCharacterEncoding("UTF-8"); String action = req.getParameterValues("action")[0]; String name = req.getParameterValues("name")[0]; if ("login".equals(action)) { event.getBroadcaster().broadcast( BEGIN_SCRIPT_TAG + toJsonp("System Message from " + event.getWebServerName(), name + " has joined.") + END_SCRIPT_TAG); res.getWriter().write("success"); res.getWriter().flush(); } else if ("post".equals(action)) { String message = req.getParameterValues("message")[0]; event.getBroadcaster().broadcast(BEGIN_SCRIPT_TAG + toJsonp(name, message) + END_SCRIPT_TAG); res.getWriter().write("success"); res.getWriter().flush(); } else { res.setStatus(422); res.getWriter().write("success"); res.getWriter().flush(); } } } public AtmosphereResource<HttpServletRequest, HttpServletResponse> onStateChange(AtmosphereResource<HttpServletRequest, HttpServletResponse> event) throws IOException { HttpServletRequest req = event.getRequest(); HttpServletResponse res = event.getResponse(); if (event.isResuming() || event.isResumedOnTimedout()) { String script = BEGIN_SCRIPT_TAG + "window.parent.app.listen();\n" + END_SCRIPT_TAG; res.getWriter().write(script); res.getWriter().flush(); } else { res.getWriter().write(event.getMessage().toString()); res.getWriter().flush(); } }
@author Jeanfrancois Arcand
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|