Updated Branches:
  refs/heads/master 94bc49d83 -> f8fcdc91b
  refs/heads/sandbox/atmosphere ae3685d06 -> ce1089c88


WICKET-4869: use message length tracking


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/f8fcdc91
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/f8fcdc91
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/f8fcdc91

Branch: refs/heads/master
Commit: f8fcdc91bf211ece7993a5ba62b3690f3078faee
Parents: 4b99a79
Author: Emond Papegaaij <[email protected]>
Authored: Wed Nov 21 11:54:08 2012 +0100
Committer: Emond Papegaaij <[email protected]>
Committed: Wed Nov 21 11:54:08 2012 +0100

----------------------------------------------------------------------
 .../wicket/atmosphere/TrackMessageSizeFilter.java  |   54 +++++++++++++++
 .../wicket/atmosphere/jquery.wicketatmosphere.js   |    2 +
 2 files changed, 56 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/f8fcdc91/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/TrackMessageSizeFilter.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/TrackMessageSizeFilter.java
 
b/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/TrackMessageSizeFilter.java
new file mode 100644
index 0000000..dbfd3bb
--- /dev/null
+++ 
b/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/TrackMessageSizeFilter.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.atmosphere;
+
+import static org.atmosphere.cpr.HeaderConfig.X_ATMOSPHERE_TRACKMESSAGESIZE;
+
+import org.atmosphere.cpr.AtmosphereRequest;
+import org.atmosphere.cpr.AtmosphereResource;
+import org.atmosphere.cpr.PerRequestBroadcastFilter;
+
+/**
+ * A broadcast filter, based on {@link 
org.atmosphere.client.TrackMessageSizeFilter}, but with a
+ * different delimiter {@code &lt;|msg|&gt;} to prevent conflicts with pipes 
in the messages.
+ */
+public class TrackMessageSizeFilter implements PerRequestBroadcastFilter
+{
+
+       @Override
+       public BroadcastAction filter(AtmosphereResource r, Object message, 
Object originalMessage)
+       {
+
+               AtmosphereRequest request = r.getRequest();
+               if 
("true".equalsIgnoreCase(request.getHeader(X_ATMOSPHERE_TRACKMESSAGESIZE)) &&
+                       message != null && 
String.class.isAssignableFrom(message.getClass()))
+               {
+
+                       String msg = message.toString();
+                       msg = msg.length() + "<|msg|>" + msg;
+                       return new 
BroadcastAction(BroadcastAction.ACTION.CONTINUE, msg);
+
+               }
+               return new BroadcastAction(BroadcastAction.ACTION.CONTINUE, 
message);
+       }
+
+       @Override
+       public BroadcastAction filter(Object originalMessage, Object message)
+       {
+               return new BroadcastAction(message);
+       }
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/f8fcdc91/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/jquery.wicketatmosphere.js
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/jquery.wicketatmosphere.js
 
b/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/jquery.wicketatmosphere.js
index fdb248c..2751084 100644
--- 
a/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/jquery.wicketatmosphere.js
+++ 
b/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/jquery.wicketatmosphere.js
@@ -40,6 +40,8 @@
                                        transport : "websocket",
                                        // transport : "streaming",
                                        // transport : "long-polling",
+                                       trackMessageLength : true,
+                                       messageDelimiter: "<|msg|>",
                                        maxRequests : 100000
                                });
                callbackAdded = true;

Reply via email to