WebSocket.fromUpgradedSocket constructor

WebSocket.fromUpgradedSocket(
  1. Socket socket, {
  2. String? protocol,
  3. bool? serverSide,
  4. CompressionOptions compression = CompressionOptions.compressionDefault,
})

Creates a WebSocket from an already-upgraded socket.

The initial WebSocket handshake must have occurred prior to this call. A WebSocket client can automatically perform the handshake using WebSocket.connect, while a server can do so using WebSocketTransformer.upgrade. To manually upgrade an HttpRequest, HttpResponse.detachSocket may be called.

protocol should be the protocol negotiated by this handshake, if any.

serverSide must be passed explicitly. If it's false, the WebSocket will act as the client and mask the messages it sends. If it's true, it will act as the server and will not mask its messages.

If compression is provided, the WebSocket created will be configured to negotiate with the specified CompressionOptions. If none is specified then the WebSocket will be created with the default CompressionOptions.

Implementation

factory WebSocket.fromUpgradedSocket(
  Socket socket, {
  String? protocol,
  bool? serverSide,
  CompressionOptions compression = CompressionOptions.compressionDefault,
}) {
  if (serverSide == null) {
    throw ArgumentError(
      "The serverSide argument must be passed "
      "explicitly to WebSocket.fromUpgradedSocket.",
    );
  }
  return _WebSocketImpl._fromSocket(
    socket,
    protocol,
    compression,
    serverSide,
  );
}