Delphi xe 10.4 webSocket пишет Connection closed by gracefully

Использую для теста компонент: https://github.com/arvanus/Indy/blob/WebSocketImpl/Lib/Core/IdWebSocketSimpleClient.pas

При подключении пишет ошибку Connection closed by Gracefully. Хотя в целом тестировал подключение здесь https://www.xhcode.com/websocket/ и здесь https://www.piesocket.com/websocket-tester, все без проблем

Соединяюсь с wss://gateway.discord.gg

Менял UserAgent и заголовки, не помогает

Подскажите в чем может быть проблема или же подскажите иные компоненты

uses
  IdWebSocketSimpleClient;
 
procedure Tform1.lSWC1DataEvent(Sender: TObject; const Text: string);
begin
  smemo1.Lines.Add(text);
end;
 
procedure TForm1.sButton1Click(Sender: TObject);
var
  lSWC: TIdSimpleWebSocketClient;
begin
  try
    lSWC := TIdSimpleWebSocketClient.Create(self);
    lSWC.onDataEvent := lSWC1DataEvent;
    lSWC.AutoCreateHandler := false; //you can set this as true in the majority of Websockets with ssl
    if not lSWC.AutoCreateHandler then
    begin
      if lSWC.IOHandler = nil then
        lSWC.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(lSWC);
      (lSWC.IOHandler as TIdSSLIOHandlerSocketOpenSSL).SSLOptions.Mode := TIdSSLMode.sslmClient;
      (lSWC.IOHandler as TIdSSLIOHandlerSocketOpenSSL).SSLOptions.SSLVersions := [sslvSSLv2, sslvSSLv3, sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2];
    end;
    lSWC.Connect('wss://gateway.discord.gg');
  finally
    freeandnil(lSWC);
  end;
 
end;

Заголовки сейчас стоят такие:

self.Socket.WriteLn(format('GET %s HTTP/1.1', [URI.path + URI.Document]));
self.Socket.WriteLn(format('Host: %s', [URI.Host]));
self.Socket.WriteLn('User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4721.209 Safari/537.36');
self.Socket.WriteLn('Connection: Upgrade');
self.Socket.WriteLn('Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits');
self.Socket.WriteLn('Upgrade: WebSocket');
self.Socket.WriteLn('Sec-WebSocket-Version: 13');
self.Socket.WriteLn(format('Sec-WebSocket-Key: %s', [generateWebSocketKey()]));
self.Socket.WriteLn('');

В снифере получаю это:

Host: gateway.discord.gg
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4721.209 Safari/537.36
Connection: Upgrade
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Upgrade: WebSocket
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: huxJmxdLhlbX1YXBNTohUA==

В ответе получаю это:

<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<center>The plain HTTP request was sent to HTTPS port</center>
<hr><center>cloudflare</center>
</body>
</html>

Ответы (2 шт):

Автор решения: usercss8
(lSWC.IOHandler as TIdSSLIOHandlerSocketOpenSSL).PassThrough := False;
→ Ссылка