From c5688794f8fb1bf25d73c7ce0f3baa8a53fd1036 Mon Sep 17 00:00:00 2001 From: Paul Gregoire <mondain@gmail.com> Date: Tue, 27 Sep 2022 12:48:12 -0700 Subject: [PATCH] Added ws manager remove conn call --- client/pom.xml | 2 +- .../main/java/org/red5/client/Red5Client.java | 2 +- common/pom.xml | 4 ++-- .../main/java/org/red5/server/api/Red5.java | 4 ++-- io/pom.xml | 2 +- pom.xml | 2 +- server/pom.xml | 2 +- .../net/websocket/WebSocketConnection.java | 23 +++++++++++-------- service/pom.xml | 2 +- 9 files changed, 23 insertions(+), 20 deletions(-) diff --git a/client/pom.xml b/client/pom.xml index 2594c404..3e8ecd25 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -3,7 +3,7 @@ <parent> <groupId>org.red5</groupId> <artifactId>red5-parent</artifactId> - <version>1.3.4</version> + <version>1.3.5</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>red5-client</artifactId> diff --git a/client/src/main/java/org/red5/client/Red5Client.java b/client/src/main/java/org/red5/client/Red5Client.java index db56837d..ff0a082e 100644 --- a/client/src/main/java/org/red5/client/Red5Client.java +++ b/client/src/main/java/org/red5/client/Red5Client.java @@ -18,7 +18,7 @@ public final class Red5Client { /** * Current server version with revision */ - public static final String VERSION = "Red5 Client 1.3.4"; + public static final String VERSION = "Red5 Client 1.3.5"; /** * Create a new Red5Client object using the connection local to the current thread A bit of magic that lets you access the red5 scope diff --git a/common/pom.xml b/common/pom.xml index 35d86861..038fe067 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -3,7 +3,7 @@ <parent> <groupId>org.red5</groupId> <artifactId>red5-parent</artifactId> - <version>1.3.4</version> + <version>1.3.5</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>red5-server-common</artifactId> @@ -124,7 +124,7 @@ <dependency> <groupId>net.engio</groupId> <artifactId>mbassador</artifactId> - <version>1.3.4</version> + <version>1.3.5</version> </dependency> --> <dependency> <groupId>junit</groupId> diff --git a/common/src/main/java/org/red5/server/api/Red5.java b/common/src/main/java/org/red5/server/api/Red5.java index 50c0dfa9..997eca6e 100644 --- a/common/src/main/java/org/red5/server/api/Red5.java +++ b/common/src/main/java/org/red5/server/api/Red5.java @@ -55,12 +55,12 @@ public final class Red5 { /** * Server version with revision */ - public static final String VERSION = "Red5 Server 1.3.4"; + public static final String VERSION = "Red5 Server 1.3.5"; /** * Server version for fmsVer requests */ - public static final String FMS_VERSION = "RED5/1,3,4,0"; + public static final String FMS_VERSION = "RED5/1,3,5,0"; /** * Server capabilities diff --git a/io/pom.xml b/io/pom.xml index d5c75c13..9c198d7c 100644 --- a/io/pom.xml +++ b/io/pom.xml @@ -3,7 +3,7 @@ <parent> <groupId>org.red5</groupId> <artifactId>red5-parent</artifactId> - <version>1.3.4</version> + <version>1.3.5</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>red5-io</artifactId> diff --git a/pom.xml b/pom.xml index ad7bf579..6256ddfe 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ <name>Red5</name> <description>The Red5 server</description> <groupId>org.red5</groupId> - <version>1.3.4</version> + <version>1.3.5</version> <url>https://github.com/Red5/red5-server</url> <inceptionYear>2005</inceptionYear> <organization> diff --git a/server/pom.xml b/server/pom.xml index 2c6a243a..e79650be 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -3,7 +3,7 @@ <parent> <groupId>org.red5</groupId> <artifactId>red5-parent</artifactId> - <version>1.3.4</version> + <version>1.3.5</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>red5-server</artifactId> diff --git a/server/src/main/java/org/red5/net/websocket/WebSocketConnection.java b/server/src/main/java/org/red5/net/websocket/WebSocketConnection.java index d30e67ee..1d67cb51 100644 --- a/server/src/main/java/org/red5/net/websocket/WebSocketConnection.java +++ b/server/src/main/java/org/red5/net/websocket/WebSocketConnection.java @@ -322,16 +322,15 @@ public class WebSocketConnection extends AttributeStore implements Comparable<We if (connected.compareAndSet(true, false)) { log.debug("close: {}", wsSessionId); WsSession session = wsSession != null ? wsSession.get() : null; - if (session != null && session.isOpen()) { - // clean up internal ws session maps since close doesnt - //if (session.isOpen()) { - // session.getPathParameters().clear(); - // session.getUserProperties().clear(); - //} - // ensure the endpoint is closed - CloseReason reason = new CloseReason(CloseCodes.GOING_AWAY, ""); - // close the socket, don't wait for the browser to respond or we could hang - session.onClose(reason); + WebSocketScopeManager manager = null; + if (session != null) { + manager = (WebSocketScopeManager) session.getUserProperties().get(WSConstants.WS_MANAGER); + if (session.isOpen()) { + // ensure the endpoint is closed + CloseReason reason = new CloseReason(CloseCodes.GOING_AWAY, ""); + // close the socket, don't wait for the browser to respond or we could hang + session.onClose(reason); + } } // clean up our props attributes.clear(); @@ -346,6 +345,10 @@ public class WebSocketConnection extends AttributeStore implements Comparable<We if (headers != null) { headers = null; } + // fire callback for manager + if (manager != null) { + manager.removeConnection(this); + } if (scope.get() != null) { // disconnect from scope scope.get().removeConnection(this); diff --git a/service/pom.xml b/service/pom.xml index 893321c4..b612c205 100644 --- a/service/pom.xml +++ b/service/pom.xml @@ -3,7 +3,7 @@ <parent> <groupId>org.red5</groupId> <artifactId>red5-parent</artifactId> - <version>1.3.4</version> + <version>1.3.5</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>red5-service</artifactId> -- GitLab