Author: markt Date: Wed Oct 9 08:08:47 2013 New Revision: 1530519 URL: http://svn.apache.org/r1530519 Log: Changes to the programmatic echo endpoint so it can be used with the Authobahn test suite: - handle binary messages - handle partial messages (enables larger messages)
Modified: tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/echo/EchoEndpoint.java Modified: tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/echo/EchoEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/echo/EchoEndpoint.java?rev=1530519&r1=1530518&r2=1530519&view=diff ============================================================================== --- tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/echo/EchoEndpoint.java (original) +++ tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/echo/EchoEndpoint.java Wed Oct 9 08:08:47 2013 @@ -17,6 +17,7 @@ package websocket.echo; import java.io.IOException; +import java.nio.ByteBuffer; import javax.websocket.Endpoint; import javax.websocket.EndpointConfig; @@ -29,23 +30,46 @@ public class EchoEndpoint extends Endpoi @Override public void onOpen(Session session, EndpointConfig endpointConfig) { RemoteEndpoint.Basic remoteEndpointBasic = session.getBasicRemote(); - session.addMessageHandler(new EchoMessageHandler(remoteEndpointBasic)); + session.addMessageHandler(new EchoMessageHandlerText(remoteEndpointBasic)); + session.addMessageHandler(new EchoMessageHandlerBinary(remoteEndpointBasic)); } - private static class EchoMessageHandler - implements MessageHandler.Whole<String> { + private static class EchoMessageHandlerText + implements MessageHandler.Partial<String> { private final RemoteEndpoint.Basic remoteEndpointBasic; - private EchoMessageHandler(RemoteEndpoint.Basic remoteEndpointBasic) { + private EchoMessageHandlerText(RemoteEndpoint.Basic remoteEndpointBasic) { this.remoteEndpointBasic = remoteEndpointBasic; } @Override - public void onMessage(String message) { + public void onMessage(String message, boolean last) { try { if (remoteEndpointBasic != null) { - remoteEndpointBasic.sendText(message); + remoteEndpointBasic.sendText(message, last); + } + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + private static class EchoMessageHandlerBinary + implements MessageHandler.Partial<ByteBuffer> { + + private final RemoteEndpoint.Basic remoteEndpointBasic; + + private EchoMessageHandlerBinary(RemoteEndpoint.Basic remoteEndpointBasic) { + this.remoteEndpointBasic = remoteEndpointBasic; + } + + @Override + public void onMessage(ByteBuffer message, boolean last) { + try { + if (remoteEndpointBasic != null) { + remoteEndpointBasic.sendBinary(message, last); } } catch (IOException e) { // TODO Auto-generated catch block --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org