Estou lendo a especificação do websocket e diz:
Finalmente, o o servidor tem que provar ao cliente que recebeu o handshake WebSocket do cliente, para que o servidor não aceite conexões que não são conexões WebSocket. Isso evita um invasor engane um servidor WebSocket enviando-o com cuidado- pacotes criados usando | XMLHttpRequest | ou um | formulário | submissão.
Eu li várias vezes, mas ainda não está claro para mim por que isso é necessário.