当前位置: 首页 > 知识库问答 >
问题:

使用socket.io时Websocket连接失败

姬飞昂
2023-03-14

我正在使用套接字。io,应用程序由AWS提供。我收到一个浏览器控制台错误:

websocket.js:54 WebSocket 连接到 'wss://www.tidee.com/socket.io/?EIO=4

客户代码:

socket = io('https://www.tidee.com', {
    transports: ['websocket', 'polling'],
  });
socket.on('reconnect_attempt', () => {
  socket.io.opts.transports = ['polling', 'websocket'];
});

服务器代码:

const socketIo = require('socket.io');
...
const socketIoServer = https.createServer(app);
const io = socketIo(socketIoServer, {
    transports: ['websocket', 'polling'],
});

在 AWS 中,安全组接受端口 443,负载均衡器侦听端口 443。

应用程序在本地运行时工作(状态 101),并使用 ws:// 协议。

共有1个答案

东郭京
2023-03-14

如果使用弹性豆(EB)来部署您的应用程序。有一个Ngin x代理服务器(在EB配置中)被部署来将请求代理到您的负载均衡器。删除Ngin x代理服务器,web套接字将正常工作。如果您想保留Ngin x代理,那么您需要将其配置为通过web套接字请求。

 类似资料:
  • 问题内容: 我尝试使用nginx设置nodejs。但是当客户端尝试连接时,它将失败并显示… 那么如何启用websocket通信呢? 我目前的Nginx配置 问题答案: 首先,将您的nginx服务器升级到1.3或更高版本。 其次,我的nginx conf有效。您可以关注我的conf。

  • 问题内容: 尝试使用socket.io- client连接到用Go编写的websocket服务器。我已经使用节点WebSocket库(npm)成功连接。因此,有效的Websocket代码如下所示: 非常简单并且有效-另一端的套接字以设定的频率发送消息。但是我最初尝试使用(npm),但是无法继续使用。它肯定将websocket列为其首选传输,但是该死,如果我能连接它的话: 连接永远不会发生,因此不会

  • 使用 jar 包 , 连接 websocket, 用域名的方式连接失败, 中间有通过 nginx 转发 用浏览器的控制台 new Websocket(wss://域名) 已经成功 nginx 配置正常的 , 用于 websocket 的配置添加了 使用 ws://域名 方式报 400 错误 用 wss://域名 方式 nginx 连请求都没收到 域名是买的, 是能通过验证的 使用 http 直接连

  • 我试图在nginx.conf中设置一个上游,并将proxy_passing传递给它,但是如果我试图通过websocket连接到端口80,我会得到一个502网关错误。 有人面临同样的问题吗?有人有nginx+spcket.io在端口80上代理的工作示例吗?

  • 问题内容: 在生产中,我有一个使用连接局部变量保存游戏状态的游戏。但是,我注意到,如果我在连接上闲置了一段时间,它将断开连接并重新连接,这将丢失当前状态。在本地主机上进行测试时,我从未注意到此行为。这是套接字连接的规范行为,还是导致连接断开的其他原因。 如果是正常行为,通常如何处理?是否应该将连接值全局存储,以便用户断开/重新连接时可以恢复连接值? 问题答案: 您的问题与套接字超时有关。如果某个套

  • 错误:无法启动连接:错误:WebSocket无法连接。在服务器上找不到连接,endpoint可能不是信号器endpoint,服务器上不存在连接ID,或者存在阻止WebSocket的代理。如果有多台服务器,请检查是否启用了粘性会话。 WebSocketTransport.js:49WebSocket连接到“ws://xxxxxx/生产/网络服务/集线器/spreadhub”失败: Angular.t