Klient własnego WebSocket

Analizuje uzgadnianie WebSocket i sprawdza je według RFC 6455: metodę, wersję, nagłówki przejścia, długość klucza 16 bajtów oraz poprawną wartość sec-websocket-accept wyliczoną z klucza. Koduje i rozbiera kadry: tekstowe, binarne, zamknięcia, ping i pong, długości do 64 bitów, maskowanie, kody i przyczyny zamknięcia, odrzucając kadry sterujące powyżej 125 bajtów i niezerowe bity zastrzeżone. Kadry pokazano w zapisie szesnastkowym.

Parses a WebSocket handshake and checks it against RFC 6455: method, version, upgrade headers, the 16-byte key length and the correct sec-websocket-accept value computed from the key. Encodes and decodes frames: text, binary, close, ping and pong, lengths up to 64 bits, masking, close codes and reasons, while rejecting control frames over 125 bytes and non-zero reserved bits. Frames are shown in hex.