public static String generateWebSocketAccept(String webSocketKey) {
String keyString = webSocketKey + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
try {
MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
byte[] hash = messageDigest.digest(keyString.getBytes(StandardCharsets.UTF_8));
return Base64.encodeToString(hash, Base64.NO_WRAP);
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("SHA-1 algorithm not found", e);
}
}
参数webSocketKey是客户端请求过来的Sec-WebSocket-Key这个头。
具体的请求和响应的例子如下