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