binmode $sock; my $header = "GET / HTTP/1.1\r\n" . "Host: localhost\r\n" . "Upgrade: websocket\r\n" . "Connection: Upgrade\r\n" . "Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==\r\n" . "Sec-WebSocket-Protocol: chat, superchat\r\n" . "Sec-WebSocket-Version: 13\r\n" . "Origin: https://cavac.at\r\n" . "\r\n"; syswrite($sock, $header); my $line = ""; while(1) { my $char; sysread($sock, $char, 1); if(defined($char) && length($char)) { if($char eq "\r") { next; } elsif($char eq "\n") { if($line eq "") { # end of header last; } else { $line = ""; } } else { $line .= $char; } } } my $frame = Protocol::WebSocket::Frame->new(max_payload_size => 500 * 1024 * 1024, masked => 1);