Skip to content

Commit 64bce8b

Browse files
committed
Avoids duplicating close events
1 parent dd7208e commit 64bce8b

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

lib/src/socket.dart

+13-9
Original file line numberDiff line numberDiff line change
@@ -279,14 +279,17 @@ class PhoenixSocket {
279279
if (_connectionManager != null) {
280280
_connectionManager!.dispose(code, reason);
281281
_connectionManager = null;
282-
}
283-
if (_stateEventStreamController.valueOrNull is! PhoenixSocketCloseEvent) {
284-
_stateEventStreamController
285-
.add(PhoenixSocketCloseEvent(code: code, reason: reason));
286-
}
287-
if (_socketStateStream.valueOrNull is! WebSocketDisconnected) {
288-
await _socketStateStream
289-
.firstWhere((state) => state is WebSocketDisconnected);
282+
283+
if (_socketStateStream.valueOrNull is! WebSocketDisconnected) {
284+
await _socketStateStream
285+
.firstWhere((state) => state is WebSocketDisconnected);
286+
}
287+
} else {
288+
_isOpen = false;
289+
if (_stateEventStreamController.valueOrNull is! PhoenixSocketCloseEvent) {
290+
_stateEventStreamController
291+
.add(PhoenixSocketCloseEvent(code: code, reason: reason));
292+
}
290293
}
291294
}
292295

@@ -561,6 +564,7 @@ class PhoenixSocket {
561564
if (_isOpen) {
562565
_triggerChannelExceptions(PhoenixException(socketError: errorEvent));
563566
}
567+
// _connectionManager?.reconnect(internalServerError, reason: 'Error on socket: ${errorEvent.error}');
564568
}
565569

566570
void _onSocketClosed(PhoenixSocketCloseEvent closeEvent) {
@@ -576,7 +580,7 @@ class PhoenixSocket {
576580

577581
_logger.fine(
578582
() =>
579-
'Socket closed with reason ${closeEvent.reason} and code ${closeEvent.code}',
583+
'Socket closed with code ${closeEvent.code} and reason "${closeEvent.reason}"',
580584
);
581585
_triggerChannelExceptions(exception);
582586
}

0 commit comments

Comments
 (0)