package example; import javax.servlet.*; import java.io.*; import java.util.logging.*; import com.caucho.websocket.WebSocketContext; import com.caucho.websocket.WebSocketListener; import com.caucho.websocket.AbstractWebSocketListener; public class WebSocketHandler extends AbstractWebSocketListener { private static final Logger log = Logger.getLogger(WebSocketHandler.class.getName()); public void onStart(WebSocketContext context) throws IOException { // sets the connection timeout to 120s context.setTimeout(120000); } public void onReadBinary(WebSocketContext context, InputStream is) throws IOException { StringBuilder sb = new StringBuilder(); int ch; while ((ch = is.read()) >= 0) { sb.append((char) ch); } String message = sb.toString(); String result = "unknown message"; if ("hello".equals(message)) result = "world"; else if ("server".equals(message)) result = "Resin"; OutputStream os = context.startBinaryMessage(); os.write(result.getBytes("utf-8")); os.close(); } public void onComplete(WebSocketContext context) throws IOException { } public void onTimeout(WebSocketContext context) throws IOException { } }