GET / HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: localhost:53000
Origin: null
Sec-WebSocket-Protocol: hmiModel
Sec-WebSocket-Key: Hbw2xjBq6OTGXzxeuqrdVQ==
Sec-WebSocket-Version: 13
Sec-WebSocket-Extensions: x-webkit-deflate-frame
これは、Chrome ブラウザでクライアント側から取得したリクエスト キーです。その後、キーを Magic String と連結しました。
マジックストリングは 258EAFA5-E914-47DA-95CA-C5AB0DC85B11
次に、SHA1アルゴリズムを使用し、以下のハッシュ値を取得しました
a5877edcaa04801d07c5687aad3a6cf03d26ad5c
次に、base64を使用して上記の値をエンコードし、暗号化された値を次のように取得しました
Nzg1YWNkZTc0MGFhZDEwoDVjNzA=
次に、応答ハンドシェイクをクライアントに送信します
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Charset: ISO8859-1,UTF-8
Connection: keep-alive, Upgrade
WebSocket-Origin: localhost
WebSocket-Location: localhost
WebSocket-Protocol: hmiModel
Sec-webSocket-Version: 13
Sec-WebSocket-Accept: Nzg1YWNkZTc0MGFhZDEwODVjNzA=
しかし、コンソールでは、「WebSocket ハンドシェイク中のエラー: Sec-WebSocket-Accept の不一致」というエラーが表示されました。
このエラーが原因で onopen および onmessage イベントが発生しないようにします。
誰が私がどこで間違いを犯したか教えてもらえますか?