You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/10/09 10:08:47 UTC

svn commit: r1530519 - /tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/echo/EchoEndpoint.java

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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org