description

# 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,
      );
    }