web_socket_channel
v3.0.3StreamChannel wrappers for WebSockets. Provides a cross-platform WebSocketChannel API, a cross-platform implementation of that API that communicates over an underlying StreamChannel.
Package archive: https://pubdev.letsnova.ru/api/archives/web_socket_channel/3.0.3.tar.gz
dart pub add web_socket_channelReadme
package:web_socket_channel provides cross-platform
StreamChannel wrappers for WebSocket connections.
Docs and Usage
It provides a cross-platform
WebSocketChannel API, a cross-platform implementation of
that API that communicates over an underlying StreamChannel,
an implementation that wraps dart:io's WebSocket
class, and a similar implementation that wraps
dart:html's.
It also provides constants for the WebSocket protocol's pre-defined status codes
in the status.dart library. It's strongly recommended that users
import this library with the prefix status.
import 'package:web_socket_channel/web_socket_channel.dart';
import 'package:web_socket_channel/status.dart' as status;
main() async {
final wsUrl = Uri.parse('ws://example.com');
final channel = WebSocketChannel.connect(wsUrl);
await channel.ready;
channel.stream.listen((message) {
channel.sink.add('received!');
channel.sink.close(status.goingAway);
});
}
WebSocketChannel
The WebSocketChannel class's most important role is as the
interface for WebSocket stream channels across all implementations and all
platforms. In addition to the base StreamChannel interface, it adds a
protocol getter that returns the negotiated protocol for the
socket, as well as closeCode and closeReason
getters that provide information about why the socket closed.
The channel's sink property is also special. It returns a
WebSocketSink, which is just like a StreamSink except that
its close() method supports optional closeCode and
closeReason parameters. These parameters allow the caller to signal to the
other socket exactly why they're closing the connection.
WebSocketChannel also works as a cross-platform implementation of the
WebSocket protocol. The WebSocketChannel.connect constructor
connects to a listening server using the appropriate implementation for the
platform.
Changelog
3.0.3
- Support
package:web_socket1.0.0.
3.0.2
- Move to
dart-lang/httpmonorepo.
3.0.1
- Remove unnecessary
dependency_overrides. - Remove obsolete documentation for
WebSocketChannel.new. - Update package
web: '>=0.5.0 <2.0.0'.
3.0.0
- Provide an adapter around
package:web_socketWebSockets and make it the default implementation forWebSocketChannel.connect. - BREAKING: Remove
WebSocketChannelconstructor. - BREAKING: Make
WebSocketChannelanabstract interface. - BREAKING:
IOWebSocketChannel.readywill throwWebSocketChannelExceptioninstead ofWebSocketException.
2.4.5
- use secure random number generator for frame masking.
2.4.4
- Require Dart
^3.3 - Require
package:web^0.5.0.
2.4.3
HtmlWebSocketChannel: Relax the type of the websocket parameter to the constructor in order to mitigate a breaking change introduced in2.4.1.
2.4.2 (retracted)
- Allow
web: '>=0.3.0 <0.5.0'
2.4.1
- Update the examples to use
WebSocketChannel.readyand clarify thatWebSocketChannel.readyshould be awaited before sending data over theWebSocketChannel. - Mention
readyin the docs forconnect. - Bump minimum Dart version to 3.2.0
- Move to
pkg:webto support WebAssembly compilation.
2.4.0
- Add a
customClientparameter to theIOWebSocketChannel.connectfactory, which allows the user to provide a customHttpClientinstance to use for the WebSocket connection - Bump minimum Dart version to 2.15.0
2.3.0
- Added a Future
readyproperty toWebSocketChannel, which completes when the connection is established - Added a
connectTimeoutparameter to theIOWebSocketChannel.connectfactory, which controls the timeout of the WebSocket Future. - Use platform agnostic code in README example.
2.2.0
- Add
HtmlWebSocketChannel.innerWebSocketgetter to access features not exposed through the sharedWebSocketChannelinterface.
2.1.0
- Add
IOWebSocketChannel.innerWebSocketgetter to access features not exposed through the sharedWebSocketChannelinterface.
2.0.0
- Support null safety.
- Require Dart 2.12.
1.2.0
- Add
protocolsargument toWebSocketChannel.connect. See the docs forWebSocket.connet. - Allow the latest crypto release (
3.x).
1.1.0
- Add
WebSocketChannel.connectfactory constructor supporting platform independent creation of WebSockets providing the lowest common denominator of support on dart:io and dart:html.
1.0.15
- bug fix don't pass protocols parameter to WebSocket.
1.0.14
- Updates to handle
Socket implements Stream<Uint8List>
1.0.13
- Internal changes for consistency with the Dart SDK.
1.0.12
- Allow
stream_channelversion 2.x
1.0.11
-
Fixed description in pubspec.
-
Fixed lints in README.md.
1.0.10
-
Fixed links in README.md.
-
Added an example.
-
Fixed analysis lints that affected package score.
1.0.9
- Set max SDK version to
<3.0.0.
1.0.8
- Remove use of deprecated constant name.
1.0.7
- Support the latest dev SDK.
1.0.6
- Declare support for
async2.0.0.
1.0.5
- Increase the SDK version constraint to
<2.0.0-dev.infinity.
1.0.4
- Support
crypto2.0.0.
1.0.3
-
Fix all strong-mode errors and warnings.
-
Fix a bug where
HtmlWebSocketChannel.close()would crash on non-Dartium browsers if the close code and reason weren't provided explicitly.
1.0.2
- Properly use
BASE64fromdart:convertrather thancrypto.
1.0.1
- Add support for
crypto1.0.0.
1.0.0
- Initial version
