首页 > 解决方案 > 亚马逊 websocket API 网关的 websocket 客户端在 safari 和 firefox 中工作,但在 chrome 中不工作

问题描述

我有一个最小的 WebSocket 客户端。我用来连接 Amazon WebSocket API 网关。它在 safari 和 firefox 中正常工作。

function myFunction() {
var token = <token>;
var webSocket = new WebSocket("wss://ws-api.execute-api.us-east-2.amazonaws.com/<stage>", token);
webSocket.onopen = function (event) {
  console.log("i")
};

当我尝试通过 chrome 连接时,出现以下错误

WebSocket 连接<host>失败

Safari 中的标题:

Pragma: no-cache
Connection: Upgrade
Host: <host>
Origin: null
Sec-WebSocket-Protocol: <token>
    Cache-Control: no-cache
    Sec-WebSocket-Key: <key>
    Sec-WebSocket-Version: 13
    Sec-WebSocket-Extensions: x-webkit-deflate-frame
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.3 Safari/605.1.15

chrome中的标题:

Accept-Encoding: gzip, deflate, br
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Cache-Control: no-cache
Connection: Upgrade
Host: <host>
Origin: null
Pragma: no-cache
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocket-Key: <key>
Sec-WebSocket-Protocol: <token>
Sec-WebSocket-Version: 13
Upgrade: websocket
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36

标签: javascriptwebsocketamazon-api-gateway

解决方案


推荐阅读