Skip to content

Commit d60f21e

Browse files
feat: improve WebSocket instance management on close event
- Added logic to remove the WebSocket instance from the plugin after a close event is received. - Introduced a new static method `removeInstance` in `WebSocketPlugin` to handle instance removal.
1 parent 2f98b4e commit d60f21e

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

src/plugins/websocket/src/android/WebSocketInstance.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,8 @@ public void onClosed(@NonNull WebSocket webSocket, int code, @NonNull String rea
179179
Log.e(TAG, "Error creating close event", e);
180180
}
181181
sendEvent("close", closedEvent.toString(), false, false);
182+
// remove instance after receiving close.
183+
WebSocketPlugin.removeInstance(this.instanceId);
182184
}
183185

184186
@Override

src/plugins/websocket/src/android/WebSocketPlugin.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ public void run() {
6363
String error = inst.close(code, reason);
6464

6565
if(error == null) {
66-
instances.remove(instanceId);
6766
callbackContext.success();
6867
return;
6968
} else if(!error.isEmpty()) {
@@ -124,4 +123,8 @@ public void onDestroy() {
124123
okHttpMainClient.dispatcher().executorService().shutdown();
125124
Log.i("WebSocketPlugin", "cleaned up... on destroy");
126125
}
126+
127+
public static void removeInstance(String instanceId) {
128+
instances.remove(instanceId);
129+
}
127130
}

0 commit comments

Comments
 (0)