File tree 9 files changed +40
-11
lines changed 9 files changed +40
-11
lines changed Original file line number Diff line number Diff line change @@ -7,12 +7,11 @@ implementations.
7
7
## Using
8
8
9
9
``` dart
10
- import 'package:web_socket/io_web_socket.dart';
11
10
import 'package:web_socket/web_socket.dart';
12
11
13
12
void main() async {
14
13
final socket =
15
- await IOWebSocket .connect(Uri.parse('wss://ws.postman-echo.com/raw'));
14
+ await WebSocket .connect(Uri.parse('wss://ws.postman-echo.com/raw'));
16
15
17
16
socket.events.listen((e) async {
18
17
switch (e) {
Original file line number Diff line number Diff line change 1
1
import 'dart:convert' ;
2
2
import 'dart:io' ;
3
3
4
- import 'package:web_socket/io_web_socket.dart' ;
5
4
import 'package:web_socket/web_socket.dart' ;
6
5
7
6
const requestId = 305 ;
@@ -11,7 +10,7 @@ void main() async {
11
10
// Whitebit public WebSocket API documentation:
12
11
// https://docs.whitebit.com/public/websocket/
13
12
final socket =
14
- await IOWebSocket .connect (Uri .parse ('wss://api.whitebit.com/ws' ));
13
+ await WebSocket .connect (Uri .parse ('wss://api.whitebit.com/ws' ));
15
14
16
15
socket.events.listen ((e) {
17
16
switch (e) {
Original file line number Diff line number Diff line change @@ -18,7 +18,8 @@ class BrowserWebSocket implements WebSocket {
18
18
final web.WebSocket _webSocket;
19
19
final _events = StreamController <WebSocketEvent >();
20
20
21
- static Future <BrowserWebSocket > connect (Uri url) async {
21
+ static Future <BrowserWebSocket > connect (Uri url,
22
+ {Iterable <String >? protocols}) async {
22
23
final webSocket = web.WebSocket (url.toString ())..binaryType = 'arraybuffer' ;
23
24
final browserSocket = BrowserWebSocket ._(webSocket);
24
25
final webSocketConnected = Completer <BrowserWebSocket >();
@@ -126,3 +127,5 @@ class BrowserWebSocket implements WebSocket {
126
127
@override
127
128
Stream <WebSocketEvent > get events => _events.stream;
128
129
}
130
+
131
+ const connect = BrowserWebSocket .connect;
Original file line number Diff line number Diff line change
1
+ // Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
2
+ // for details. All rights reserved. Use of this source code is governed by a
3
+ // BSD-style license that can be found in the LICENSE file.
4
+
5
+ import '../web_socket.dart' ;
6
+
7
+ Future <WebSocket > connect (Uri url, {Iterable <String >? protocols}) {
8
+ throw UnsupportedError ('Cannot connect without dart:js_interop or dart:io.' );
9
+ }
Original file line number Diff line number Diff line change @@ -16,9 +16,10 @@ class IOWebSocket implements WebSocket {
16
16
final io.WebSocket _webSocket;
17
17
final _events = StreamController <WebSocketEvent >();
18
18
19
- static Future <IOWebSocket > connect (Uri uri) async {
19
+ static Future <IOWebSocket > connect (Uri url,
20
+ {Iterable <String >? protocols}) async {
20
21
try {
21
- final webSocket = await io.WebSocket .connect (uri .toString ());
22
+ final webSocket = await io.WebSocket .connect (url .toString ());
22
23
return IOWebSocket ._(webSocket);
23
24
} on io.WebSocketException catch (e) {
24
25
throw WebSocketException (e.message);
@@ -90,3 +91,5 @@ class IOWebSocket implements WebSocket {
90
91
@override
91
92
Stream <WebSocketEvent > get events => _events.stream;
92
93
}
94
+
95
+ const connect = IOWebSocket .connect;
Original file line number Diff line number Diff line change 4
4
5
5
import 'dart:typed_data' ;
6
6
7
+ import 'connect_stub.dart'
8
+ if (dart.library.js_interop) 'browser_web_socket.dart'
9
+ if (dart.library.io) 'io_web_socket.dart' as connector;
10
+
7
11
/// An event received from the peer through the [WebSocket] .
8
12
sealed class WebSocketEvent {}
9
13
@@ -90,12 +94,11 @@ class WebSocketConnectionClosed extends WebSocketException {
90
94
/// The interface for WebSocket connections.
91
95
///
92
96
/// ```dart
93
- /// import 'package:web_socket/io_web_socket.dart';
94
97
/// import 'package:web_socket/src/web_socket.dart';
95
98
///
96
99
/// void main() async {
97
100
/// final socket =
98
- /// await IOWebSocket .connect(Uri.parse('wss://ws.postman-echo.com/raw'));
101
+ /// await WebSocket .connect(Uri.parse('wss://ws.postman-echo.com/raw'));
99
102
///
100
103
/// socket.events.listen((e) async {
101
104
/// switch (e) {
@@ -112,6 +115,9 @@ class WebSocketConnectionClosed extends WebSocketException {
112
115
/// socket.sendText('Hello Dart WebSockets! 🎉');
113
116
/// }
114
117
abstract interface class WebSocket {
118
+ static Future <WebSocket > connect (Uri url, {Iterable <String >? protocols}) =>
119
+ connector.connect (url, protocols: protocols);
120
+
115
121
/// Sends text data to the connected peer.
116
122
///
117
123
/// Throws [WebSocketConnectionClosed] if the [WebSocket] is
Original file line number Diff line number Diff line change @@ -10,5 +10,5 @@ import 'package:web_socket/browser_web_socket.dart';
10
10
import 'package:web_socket_conformance_tests/web_socket_conformance_tests.dart' ;
11
11
12
12
void main () {
13
- testAll ((uri, {protocols}) => BrowserWebSocket .connect (uri) );
13
+ testAll (BrowserWebSocket .connect);
14
14
}
Original file line number Diff line number Diff line change @@ -10,5 +10,5 @@ import 'package:web_socket/io_web_socket.dart';
10
10
import 'package:web_socket_conformance_tests/web_socket_conformance_tests.dart' ;
11
11
12
12
void main () {
13
- testAll ((uri, {protocols}) => IOWebSocket .connect (uri) );
13
+ testAll (IOWebSocket .connect);
14
14
}
Original file line number Diff line number Diff line change
1
+ // Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
2
+ // for details. All rights reserved. Use of this source code is governed by a
3
+ // BSD-style license that can be found in the LICENSE file.
4
+
5
+ import 'package:web_socket/web_socket.dart' ;
6
+ import 'package:web_socket_conformance_tests/web_socket_conformance_tests.dart' ;
7
+
8
+ void main () {
9
+ testAll (WebSocket .connect);
10
+ }
You can’t perform that action at this time.
0 commit comments