1 2 3 4 5 6 7 | public interface AtmosphereHandler<F, G> { void onRequest(AtmosphereResource<F, G> resource) throws IOException; void onStateChange(AtmosphereResourceEvent<F, G> event) throws IOException; void destroy(); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Broadcaster broadcaster = BroadcasterFactory.getDefault().lookup( DefaultBroadcaster.class, ChatHandler.class.getName(), true); broadcaster.setScope(Broadcaster.SCOPE.APPLICATION); resource.setBroadcaster(broadcaster); HttpServletRequest req = resource.getRequest(); String user = (String) req.getSession().getAttribute("user"); if (user != null) { if ("GET".equals(req.getMethod())) { resource.suspend(-1, false); } else if ("POST".equals(req.getMethod())) { String cmd = req.getParameter("cmd"); String message = req.getParameter("message"); if ("disconnect".equals(cmd)) { close(resource); } else if (message != null && message.trim().length() > 0) { broadcaster.broadcast("[" + user + "] " + message); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Broadcaster broadcaster = BroadcasterFactory.getDefault().lookup( DefaultBroadcaster.class, ChatHandler.class.getName(), true); // Client closed the connection. if (event.isCancelled()) { close(event.getResource()); return; } try { String message = (String) event.getMessage(); if (message != null) { PrintWriter writer = event.getResource().getResponse().getWriter(); writer.write(message); writer.flush(); } } finally { if (!event.isResumedOnTimeout()) { event.getResource().resume(); } } |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |