description

# WebSocket class Null safety

A two-way HTTP communication object for client or server applications.

The stream exposes the messages received. A text message will be of type `String` and a binary message will be of type `List<int>`.

Implemented types
  - Stream
  - StreamSink

## Constructors

WebSocket()
WebSocket.fromUpgradedSocket(Socket socket, {String? protocol, bool? serverSide, CompressionOptions compression: CompressionOptions.compressionDefault})
  Creates a WebSocket from an already-upgraded socket. [...]
  factory

## Properties

closeCode → int?
  The close code set when the WebSocket connection is closed. If there is no close code available this property will be `null`
  read-only
closeReason → String?
  The close reason set when the WebSocket connection is closed. If there is no close reason available this property will be `null`
  read-only
done → Future
  Return a future which is completed when the StreamSink is finished. [...]
  read-only, inherited
extensions → String
  The extensions property is initially the empty string. After the WebSocket connection is established this string reflects the extensions used by the server.
  read-only
first → Future
  The first element of this stream. [...]
  read-only, inherited
hashCode → int
  The hash code for this object. [...]
  read-only, inherited
isBroadcast → bool
  Whether this stream is a broadcast stream.
  read-only, inherited
isEmpty → Future<bool>
  Whether this stream contains any elements. [...]
  read-only, inherited
last → Future
  The last element of this stream. [...]
  read-only, inherited
length → Future<int>
  The number of elements in this stream. [...]
  read-only, inherited
pingInterval ↔ Duration?
  The interval between ping signals. [...]
  read / write
protocol → String?
  The protocol property is initially the empty string. After the WebSocket connection is established the value is the subprotocol selected by the server. If no subprotocol is negotiated the value will remain `null`.
  read-only
readyState → int
  Returns the current state of the connection.
  read-only
runtimeType → Type
  A representation of the runtime type of the object.
  read-only, inherited
single → Future
  The single element of this stream. [...]
  read-only, inherited

## Methods

add(dynamic data) → void
  Sends data on the WebSocket connection. The data in `data` must be either a `String`, or a `List<int>` holding bytes.
  override
addError(Object error, [StackTrace? stackTrace]) → void
  Adds an `error` to the sink. [...]
  inherited
addStream(Stream stream) → Future
  Sends data from a stream on WebSocket connection. Each data event from `stream` will be send as a single WebSocket frame. The data from `stream` must be either `String`s, or `List<int>`s holding bytes.
  override
addUtf8Text(List<int> bytes) → void
  Sends a text message with the text represented by `bytes`. [...]
any(bool test(dynamic element)) → Future<bool>
  Checks whether `test` accepts any element provided by this stream. [...]
  inherited
asBroadcastStream({void onListen(StreamSubscription subscription), void onCancel(StreamSubscription subscription)}) → Stream
  Returns a multi-subscription stream that produces the same events as this. [...]
  inherited
asyncExpand<E>(Stream<E>? convert(dynamic event)) → Stream<E>
  Transforms each element into a sequence of asynchronous events. [...]
  inherited
asyncMap<E>(FutureOr<E> convert(dynamic event)) → Stream<E>
  Creates a new stream with each data event of this stream asynchronously mapped to a new event. [...]
  inherited
cast<R>() → Stream<R>
  Adapt this stream to be a `Stream<R>`. [...]
  inherited
close([int? code, String? reason]) → Future
  Closes the WebSocket connection. Set the optional `code` and `reason` arguments to send close information to the remote peer. If they are omitted, the peer will see WebSocketStatus.noStatusReceived code with no reason.
  override
contains(Object? needle) → Future<bool>
  Returns whether `needle` occurs in the elements provided by this stream. [...]
  inherited
distinct([bool equals(dynamic previous, dynamic next)]) → Stream
  Skips data events if they are equal to the previous data event. [...]
  inherited
drain<E>([E? futureValue]) → Future<E>
  Discards all data on this stream, but signals when it is done or an error occurred. [...]
  inherited
elementAt(int index) → Future
  Returns the value of the `index`th data event of this stream. [...]
  inherited
every(bool test(dynamic element)) → Future<bool>
  Checks whether `test` accepts all elements provided by this stream. [...]
  inherited
expand<S>(Iterable<S> convert(dynamic element)) → Stream<S>
  Transforms each element of this stream into a sequence of elements. [...]
  inherited
firstWhere(bool test(dynamic element), {dynamic orElse()}) → Future
  Finds the first element of this stream matching `test`. [...]
  inherited
fold<S>(S initialValue, S combine(S previous, dynamic element)) → Future<S>
  Combines a sequence of values by repeatedly applying `combine`. [...]
  inherited
forEach(void action(dynamic element)) → Future
  Executes `action` on each element of this stream. [...]
  inherited
handleError(Function onError, {bool test(dynamic error)}) → Stream
  Creates a wrapper Stream that intercepts some errors from this stream. [...]
  inherited
join([String separator = ""]) → Future<String>
  Combines the string representation of elements into a single string. [...]
  inherited
lastWhere(bool test(dynamic element), {dynamic orElse()}) → Future
  Finds the last element in this stream matching `test`. [...]
  inherited
listen(void onData(dynamic event), {Function? onError, void onDone(), bool? cancelOnError}) → StreamSubscription
  Adds a subscription to this stream. [...]
  inherited
map<S>(S convert(dynamic event)) → Stream<S>
  Transforms each element of this stream into a new stream event. [...]
  inherited
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a non-existent method or property is accessed. [...]
  inherited
pipe(StreamConsumer streamConsumer) → Future
  Pipes the events of this stream into `streamConsumer`. [...]
  inherited
reduce(dynamic combine(dynamic previous, dynamic element)) → Future
  Combines a sequence of values by repeatedly applying `combine`. [...]
  inherited
singleWhere(bool test(dynamic element), {dynamic orElse()}) → Future
  Finds the single element in this stream matching `test`. [...]
  inherited
skip(int count) → Stream
  Skips the first `count` data events from this stream. [...]
  inherited
skipWhile(bool test(dynamic element)) → Stream
  Skip data events from this stream while they are matched by `test`. [...]
  inherited
take(int count) → Stream
  Provides at most the first `count` data events of this stream. [...]
  inherited
takeWhile(bool test(dynamic element)) → Stream
  Forwards data events while `test` is successful. [...]
  inherited
timeout(Duration timeLimit, {void onTimeout(EventSink sink)}) → Stream
  Creates a new stream with the same events as this stream. [...]
  inherited
toList() → Future<List>
  Collects all elements of this stream in a List. [...]
  inherited
toSet() → Future<Set>
  Collects the data of this stream in a Set. [...]
  inherited
toString() → String
  Returns a string representation of this object.
  inherited
transform<S>(StreamTransformer<dynamic, S> streamTransformer) → Stream<S>
  Applies `streamTransformer` to this stream. [...]
  inherited
where(bool test(dynamic event)) → Stream
  Creates a new stream from this stream that discards some elements. [...]
  inherited

## Operators

operator ==(Object other) → bool
  The equality operator. [...]
  inherited

## Static Properties

userAgent ↔ String?
  Gets the user agent used for WebSocket connections.
  read / write

## Static Methods

connect(String url, {Iterable<String>? protocols, Map<String, dynamic>? headers, CompressionOptions compression: CompressionOptions.compressionDefault}) → Future<WebSocket>
  Create a new WebSocket connection. The URL supplied in `url` must use the scheme `ws` or `wss`. [...]

## Constants

CLOSED → const int
  @Deprecated("Use closed instead")
  `closed`
closed → const int
  `3`
CLOSING → const int
  @Deprecated("Use closing instead")
  `closing`
closing → const int
  `2`
CONNECTING → const int
  @Deprecated("Use connecting instead")
  `connecting`
connecting → const int
  Possible states of the connection.
  `0`
OPEN → const int
  @Deprecated("Use open instead")
  `open`
open → const int
  `1`