handshake method

void handshake(
  1. Uint8List data,
  2. WebSocketChannel channel
)

Implementation

void handshake(Uint8List data, WebSocketChannel channel) {
  var secretKey = String.fromCharCodes(data.toList())
      .split('\r\n')
      .firstWhere((element) => element.contains('Sec-WebSocket-Key: '))
      .split(': ')
      .last;
  var acceptKey = convert.base64.encode(sha1
      .convert((secretKey + '258EAFA5-E914-47DA-95CA-C5AB0DC85B11').codeUnits)
      .bytes);
  channel.socket.write('HTTP/1.1 101 Switching Protocols\r\n');
  channel.socket.write('Upgrade: websocket\r\n');
  channel.socket.write('Connection: Upgrade\r\n');
  channel.socket.write('Sec-WebSocket-Accept: $acceptKey\r\n');
  channel.socket.write('\r\n');
  channel.handshaked = true;
  provider?.onConnected(channel);
}