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 2012/11/09 21:32:02 UTC
svn commit: r1407619 -
/tomcat/trunk/java/org/apache/catalina/websocket/WsOutbound.java
Author: markt
Date: Fri Nov 9 20:32:01 2012
New Revision: 1407619
URL: http://svn.apache.org/viewvc?rev=1407619&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=54127
Add support for sending a WebSocket ping
Patch provided by Sean Winterberger
Modified:
tomcat/trunk/java/org/apache/catalina/websocket/WsOutbound.java
Modified: tomcat/trunk/java/org/apache/catalina/websocket/WsOutbound.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/websocket/WsOutbound.java?rev=1407619&r1=1407618&r2=1407619&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/websocket/WsOutbound.java (original)
+++ tomcat/trunk/java/org/apache/catalina/websocket/WsOutbound.java Fri Nov 9 20:32:01 2012
@@ -301,6 +301,29 @@ public class WsOutbound {
* @throws IOException If an error occurs writing to the client
*/
public synchronized void pong(ByteBuffer data) throws IOException {
+ sendControlMessage(data, Constants.OPCODE_PONG);
+ }
+
+ /**
+ * Send a ping message to the client
+ *
+ * @param data Optional message.
+ *
+ * @throws IOException If an error occurs writing to the client
+ */
+ public synchronized void ping(ByteBuffer data) throws IOException {
+ sendControlMessage(data, Constants.OPCODE_PING);
+ }
+
+ /**
+ * Generic function to send either a ping or a pong.
+ *
+ * @param data Optional message.
+ * @param opcode The byte to include as the opcode.
+ *
+ * @throws IOException If an error occurs writing to the client
+ */
+ private synchronized void sendControlMessage(ByteBuffer data, byte opcode) throws IOException {
if (closed) {
throw new IOException(sm.getString("outbound.closed"));
@@ -308,7 +331,7 @@ public class WsOutbound {
doFlush(true);
- upgradeOutbound.write(0x8A);
+ upgradeOutbound.write(0x80 | opcode);
if (data == null) {
upgradeOutbound.write(0);
} else {
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org