Skip to content

Commit 0d6ba23

Browse files
committed
Renames socket states
1 parent aaf981b commit 0d6ba23

File tree

4 files changed

+59
-57
lines changed

4 files changed

+59
-57
lines changed

lib/src/socket.dart

+15-13
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,13 @@ class PhoenixSocket {
138138
bool _isOpen = false;
139139

140140
/// Whether the phoenix socket is ready to join channels. Note that this is
141-
/// not the same as the WebSocketReady state, but rather is set to true when
142-
/// both web socket is ready, and the first heartbeat reply has been received.
141+
/// not the same as the WebSocketConnected state, but rather is set to true
142+
/// when both web socket is connected, and the first heartbeat reply has been
143+
/// received.
143144
bool get isConnected => _isOpen;
144145

145146
bool get _isConnectingOrConnected => switch (_socketStateStream.valueOrNull) {
146-
WebSocketInitializing() || WebSocketReady() => true,
147+
WebSocketConnecting() || WebSocketConnected() => true,
147148
_ => false,
148149
};
149150

@@ -259,8 +260,9 @@ class PhoenixSocket {
259260
}
260261
if (_isConnectingOrConnected) {
261262
_connectionManager.stop(code, reason);
262-
} else if (_socketStateStream.valueOrNull is! WebSocketClosed) {
263-
await _socketStateStream.firstWhere((state) => state is WebSocketClosed);
263+
} else if (_socketStateStream.valueOrNull is! WebSocketDisconnected) {
264+
await _socketStateStream
265+
.firstWhere((state) => state is WebSocketDisconnected);
264266
}
265267
}
266268

@@ -351,7 +353,7 @@ class PhoenixSocket {
351353
/// HEARTBEAT
352354
353355
Future<void> _startHeartbeat() async {
354-
if (_socketStateStream.valueOrNull is! WebSocketReady) {
356+
if (_socketStateStream.valueOrNull is! WebSocketConnected) {
355357
throw StateError('Cannot start heartbeat while disconnected');
356358
}
357359

@@ -453,7 +455,7 @@ class PhoenixSocket {
453455

454456
bool _shouldPipeMessage(String message) {
455457
final currentSocketState = _socketStateStream.valueOrNull;
456-
if (currentSocketState is WebSocketReady) {
458+
if (currentSocketState is WebSocketConnected) {
457459
return true;
458460
} else {
459461
_logger.warning(
@@ -500,24 +502,24 @@ class PhoenixSocket {
500502
}
501503

502504
void _onSocketStateChanged(WebSocketConnectionState state) {
503-
if (state is! WebSocketReady) {
505+
if (state is! WebSocketConnected) {
504506
_isOpen = false;
505507
}
506508

507509
switch (state) {
508-
case WebSocketReady():
510+
case WebSocketConnected():
509511
_startHeartbeat();
510-
case WebSocketClosing():
512+
case WebSocketDisconnecting():
511513
_cancelHeartbeat(successfully: false);
512514

513-
case WebSocketClosed(:final code, :final reason):
514-
// Just in case we skipped the closing event.
515+
case WebSocketDisconnected(:final code, :final reason):
516+
// Just in case we skipped the disconnecting event.
515517
_cancelHeartbeat(successfully: false);
516518

517519
_stateEventStreamController.add(
518520
PhoenixSocketCloseEvent(code: code, reason: reason),
519521
);
520-
case WebSocketInitializing():
522+
case WebSocketConnecting():
521523
}
522524
}
523525

lib/src/socket_connection.dart

+11-11
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ final class _ConnectionCallbacks {
307307
lastState = newState;
308308

309309
switch (newState) {
310-
case WebSocketClosed():
310+
case WebSocketDisconnected():
311311
if (_logger.isLoggable(Level.FINE)) {
312312
_logger.fine(
313313
'Socket closed, ${!manager._shouldAttemptReconnection ? ' not ' : ''}attempting to reconnect',
@@ -316,10 +316,10 @@ final class _ConnectionCallbacks {
316316
if (manager._shouldAttemptReconnection) {
317317
manager._connect();
318318
}
319-
case WebSocketReady():
319+
case WebSocketConnected():
320320
manager._connectionAttempts = 0;
321-
case WebSocketClosing():
322-
case WebSocketInitializing():
321+
case WebSocketDisconnecting():
322+
case WebSocketConnecting():
323323
// Do nothing.
324324
}
325325

@@ -334,9 +334,9 @@ final class _ConnectionCallbacks {
334334
case (null, _):
335335
return true;
336336
case (final a, final b) when a == b:
337-
case (_, WebSocketInitializing()):
338-
case (WebSocketClosed(), _):
339-
case (WebSocketClosing(), final b) when b is! WebSocketClosed:
337+
case (_, WebSocketConnecting()):
338+
case (WebSocketDisconnected(), _):
339+
case (WebSocketDisconnecting(), final b) when b is! WebSocketDisconnected:
340340
return false;
341341
case _:
342342
return true;
@@ -349,7 +349,7 @@ class _WebSocketConnection {
349349
WebSocketChannelFactory factory, {
350350
required _ConnectionCallbacks callbacks,
351351
}) async {
352-
callbacks.onStateChange(const WebSocketInitializing._());
352+
callbacks.onStateChange(const WebSocketConnecting._());
353353
final WebSocketChannel ws;
354354
try {
355355
ws = await factory();
@@ -358,7 +358,7 @@ class _WebSocketConnection {
358358
throw ConnectionInitializationException(error, stackTrace);
359359
}
360360

361-
callbacks.onStateChange(const WebSocketReady._());
361+
callbacks.onStateChange(const WebSocketConnected._());
362362

363363
return _WebSocketConnection._(
364364
ws,
@@ -382,7 +382,7 @@ class _WebSocketConnection {
382382
onError: onError,
383383
onDone: () {
384384
onStateChange(
385-
WebSocketClosed._(_ws.closeCode ?? 4000, _ws.closeReason),
385+
WebSocketDisconnected._(_ws.closeCode ?? 4000, _ws.closeReason),
386386
);
387387
acceptingMessages = false;
388388
subscription.cancel();
@@ -393,7 +393,7 @@ class _WebSocketConnection {
393393
(_) {
394394
if (acceptingMessages) {
395395
acceptingMessages = false;
396-
onStateChange(const WebSocketClosing._());
396+
onStateChange(const WebSocketDisconnecting._());
397397
}
398398
},
399399
onError: onError,

lib/src/socket_state.dart

+13-13
Original file line numberDiff line numberDiff line change
@@ -22,48 +22,48 @@ sealed class WebSocketConnectionState {
2222

2323
/// A connection attempt has started. This encompasses both local preparation of
2424
/// initial connection, and waiting for connection to become ready.
25-
final class WebSocketInitializing extends WebSocketConnectionState {
26-
const WebSocketInitializing._() : super._();
25+
final class WebSocketConnecting extends WebSocketConnectionState {
26+
const WebSocketConnecting._() : super._();
2727

2828
@override
29-
String toString() => 'WebSocketInitializing';
29+
String toString() => 'WebSocketConnecting';
3030
}
3131

3232
/// WebSocket connection was established and accepts sending messages through it.
33-
final class WebSocketReady extends WebSocketConnectionState {
34-
const WebSocketReady._() : super._();
33+
final class WebSocketConnected extends WebSocketConnectionState {
34+
const WebSocketConnected._() : super._();
3535

3636
@override
37-
String toString() => 'WebSocketReady';
37+
String toString() => 'WebSocketConnected';
3838
}
3939

4040
/// WebSocket connection has stopped accepting messages, and waits for final
4141
/// server reply to the Close message.
42-
final class WebSocketClosing extends WebSocketConnectionState {
43-
const WebSocketClosing._() : super._();
42+
final class WebSocketDisconnecting extends WebSocketConnectionState {
43+
const WebSocketDisconnecting._() : super._();
4444

4545
@override
46-
String toString() => 'WebSocketClosing';
46+
String toString() => 'WebSocketDisconnecting';
4747
}
4848

4949
/// WebSocket connection does not accept nor provide messages, nor will in the
5050
/// future. This also encompasses situations where WebSocket connection was not
5151
/// established at all.
52-
final class WebSocketClosed extends WebSocketConnectionState {
53-
WebSocketClosed._(this.code, this.reason) : super._();
52+
final class WebSocketDisconnected extends WebSocketConnectionState {
53+
WebSocketDisconnected._(this.code, this.reason) : super._();
5454

5555
final int code;
5656
final String? reason;
5757

5858
@override
59-
String toString() => 'WebSocketClosed($code, $reason)';
59+
String toString() => 'WebSocketDisconnected($code, $reason)';
6060

6161
@override
6262
int get hashCode => Object.hash(code, reason);
6363

6464
@override
6565
bool operator ==(Object other) {
66-
return other is WebSocketClosed &&
66+
return other is WebSocketDisconnected &&
6767
other.code == code &&
6868
other.reason == reason &&
6969
other.runtimeType == runtimeType;

test/src/socket_connection_test.dart

+20-20
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,15 @@ void main() {
6363

6464
verify(mockChannelConfig.channel.ready).called(1);
6565
verify(
66-
mockOnStateChange.call(argThat(isA<WebSocketInitializing>())),
66+
mockOnStateChange.call(argThat(isA<WebSocketConnecting>())),
6767
).called(1);
6868
verifyNoMoreInteractions(mockOnStateChange);
6969

7070
mockChannelConfig.readyCompleter.complete();
7171
await Future.delayed(Duration.zero);
7272

7373
verify(
74-
mockOnStateChange.call(argThat(isA<WebSocketReady>())),
74+
mockOnStateChange.call(argThat(isA<WebSocketConnected>())),
7575
).called(1);
7676
verifyNoMoreInteractions(mockOnStateChange);
7777

@@ -112,7 +112,7 @@ void main() {
112112

113113
verify(channelMocks[0].channel.ready).called(1);
114114
verify(
115-
mockOnStateChange.call(argThat(isA<WebSocketInitializing>())),
115+
mockOnStateChange.call(argThat(isA<WebSocketConnecting>())),
116116
).called(1);
117117
verifyNoMoreInteractions(mockOnStateChange);
118118
verifyZeroInteractions(mockOnError);
@@ -143,14 +143,14 @@ void main() {
143143
expect(invocationCount, 2);
144144

145145
verify(
146-
mockOnStateChange.call(argThat(isA<WebSocketInitializing>())),
146+
mockOnStateChange.call(argThat(isA<WebSocketConnecting>())),
147147
).called(1);
148148
verifyNoMoreInteractions(mockOnStateChange);
149149

150150
channelMocks[1].readyCompleter.complete();
151151
await Future.delayed(Duration.zero);
152152
verify(
153-
mockOnStateChange.call(argThat(isA<WebSocketReady>())),
153+
mockOnStateChange.call(argThat(isA<WebSocketConnected>())),
154154
).called(1);
155155
verifyNoMoreInteractions(mockOnError);
156156
verifyNoMoreInteractions(mockOnStateChange);
@@ -180,7 +180,7 @@ void main() {
180180

181181
verify(channelMocks.channel.ready).called(1);
182182
verify(
183-
mockOnStateChange.call(argThat(isA<WebSocketInitializing>())),
183+
mockOnStateChange.call(argThat(isA<WebSocketConnecting>())),
184184
).called(1);
185185
verifyNoMoreInteractions(mockOnStateChange);
186186

@@ -195,7 +195,7 @@ void main() {
195195
channelMocks.readyCompleter.complete();
196196
await Future.delayed(Duration.zero);
197197
verify(
198-
mockOnStateChange.call(argThat(isA<WebSocketReady>())),
198+
mockOnStateChange.call(argThat(isA<WebSocketConnected>())),
199199
).called(1);
200200
verifyNoMoreInteractions(mockOnStateChange);
201201

@@ -227,7 +227,7 @@ void main() {
227227

228228
verify(channelMocks[0].channel.ready).called(1);
229229
verify(
230-
mockOnStateChange.call(argThat(isA<WebSocketInitializing>())),
230+
mockOnStateChange.call(argThat(isA<WebSocketConnecting>())),
231231
).called(1);
232232
verifyNoMoreInteractions(mockOnStateChange);
233233

@@ -249,8 +249,8 @@ void main() {
249249
await Future.delayed(Duration.zero);
250250
expect(invocationCount, 2);
251251
verifyInOrder([
252-
mockOnStateChange.call(argThat(isA<WebSocketInitializing>())),
253-
mockOnStateChange.call(argThat(isA<WebSocketReady>())),
252+
mockOnStateChange.call(argThat(isA<WebSocketConnecting>())),
253+
mockOnStateChange.call(argThat(isA<WebSocketConnected>())),
254254
]);
255255
verifyNoMoreInteractions(mockOnStateChange);
256256

@@ -276,16 +276,16 @@ void main() {
276276

277277
verify(channelMocks.channel.ready).called(1);
278278
verifyInOrder([
279-
mockOnStateChange.call(argThat(isA<WebSocketInitializing>())),
280-
mockOnStateChange.call(argThat(isA<WebSocketReady>())),
279+
mockOnStateChange.call(argThat(isA<WebSocketConnecting>())),
280+
mockOnStateChange.call(argThat(isA<WebSocketConnected>())),
281281
]);
282282
verifyNoMoreInteractions(mockOnStateChange);
283283

284284
channelMocks.sinkDoneCompleter.complete();
285285
await Future.delayed(Duration.zero);
286286

287287
verify(
288-
mockOnStateChange.call(argThat(isA<WebSocketClosing>())),
288+
mockOnStateChange.call(argThat(isA<WebSocketDisconnecting>())),
289289
).called(1);
290290

291291
verifyNoMoreInteractions(mockOnStateChange);
@@ -312,16 +312,16 @@ void main() {
312312

313313
verify(channelMock.channel.ready).called(1);
314314
verifyInOrder([
315-
mockOnStateChange.call(argThat(isA<WebSocketInitializing>())),
316-
mockOnStateChange.call(argThat(isA<WebSocketReady>())),
315+
mockOnStateChange.call(argThat(isA<WebSocketConnecting>())),
316+
mockOnStateChange.call(argThat(isA<WebSocketConnected>())),
317317
]);
318318
verifyNoMoreInteractions(mockOnStateChange);
319319

320320
channelMock.streamController.close();
321321
await Future.delayed(Duration.zero);
322322

323323
verify(
324-
mockOnStateChange.call(argThat(isA<WebSocketClosed>())),
324+
mockOnStateChange.call(argThat(isA<WebSocketDisconnected>())),
325325
).called(1);
326326

327327
verifyNoMoreInteractions(mockOnStateChange);
@@ -348,8 +348,8 @@ void main() {
348348

349349
verify(channelMock.channel.ready).called(1);
350350
verifyInOrder([
351-
mockOnStateChange.call(argThat(isA<WebSocketInitializing>())),
352-
mockOnStateChange.call(argThat(isA<WebSocketReady>())),
351+
mockOnStateChange.call(argThat(isA<WebSocketConnecting>())),
352+
mockOnStateChange.call(argThat(isA<WebSocketConnected>())),
353353
]);
354354
verifyNoMoreInteractions(mockOnStateChange);
355355
verifyZeroInteractions(mockOnError);
@@ -387,8 +387,8 @@ void main() {
387387

388388
verify(channelMock.channel.ready).called(1);
389389
verifyInOrder([
390-
mockOnStateChange.call(argThat(isA<WebSocketInitializing>())),
391-
mockOnStateChange.call(argThat(isA<WebSocketReady>())),
390+
mockOnStateChange.call(argThat(isA<WebSocketConnecting>())),
391+
mockOnStateChange.call(argThat(isA<WebSocketConnected>())),
392392
]);
393393
verifyNoMoreInteractions(mockOnStateChange);
394394

0 commit comments

Comments
 (0)