In order to get Hixie76 through a HAProxy loadbalancer the server must send response headers before the request nonce is received. In other words: before haproxy will send the extra data from the client (nonce) it expects the server to respond to the headers. Current implementation does not support that, and hangs and waits for nonce instead of sending response headers as soon as possible.
To reproduce: https://gist.github.com/1780761
(Sorry for writing tests in node, but the logic is quite simple.)
Another way to reproduce:
nc localhost 8000
GET /demo HTTP/1.1
Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5
Sec-WebSocket-Key2: 12998 5 Y3 1 .P00
Result: server hangs. Expected result: response headers (without nonce yet). Response nonce should be sent once next 8 bytes are sent by the client.
thank you for this.
misultin has been discontinued, my reasons here.
See Gist timclassic/5287161 for a patch that fixes this issue. I'm using this patch internally and it has solved my issues with HAProxy and Flash sockets (which use hixie76).