いくつかの変更の後、これは私のクロムクライアントとJavaサーバーの間の変換です:
GET / HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: localhost:4444
Origin: chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo
Pragma: no-cache
Cache-Control: no-cache
Sec-WebSocket-Key: Gh/WYxZXrUNZdPc2+LQ/Tg==
Sec-WebSocket-Version: 13
Sec-WebSocket-Extensions: x-webkit-deflate-frame
Sent text to CLIENT_1
-------------Response to handshake------------
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: NmkE36ZEsC5baQaMjLPb5CxHwDM=
ハンドシェイクの応答は次のようになります。
public static String Key(String thekey) throws NoSuchAlgorithmException {
String base64;
thekey = thekey + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
MessageDigest md = MessageDigest.getInstance("SHA-1");
byte[] digest = md.digest(thekey.getBytes()); // Missing charset
base64 = Base64.encodeBase64URLSafeString(digest);
base64=base64.replace("_", "/");
base64=base64.replace("-", "+");
return new String(base64);
}
Send("HTTP/1.1 101 Switching Protocols\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: " + Key(key) +"=\r\n\r\n");
その後、10 バイトのデータを送信すると、クライアントが切断されます。私に何ができる?前もって感謝します!スモレット。