WebSocket 连接到“ws://chattestarpit.herokuapp.com/”失败:WebSocket 握手期间出错:意外响应代码:503

Posted

技术标签:

【中文标题】WebSocket 连接到“ws://chattestarpit.herokuapp.com/”失败:WebSocket 握手期间出错:意外响应代码:503【英文标题】:WebSocket connection to 'ws://chattestarpit.herokuapp.com/' failed: Error during WebSocket handshake: Unexpected response code: 503 【发布时间】:2018-07-06 17:54:13 【问题描述】:

我是 WebSocket (webRTC) 的新手。我创建了一个视频聊天应用程序。它在本地主机上工作。

服务器

    app.listen(process.env.PORT || 8081, function ()   
   console.log("Example app listening at 8081" )
);
app.get('/', function(req, res)
    res.sendfile('index.html');
);
//require our websocket library 
var WebSocketServer = require('ws').Server; 

//creating a websocket server at port 9090 
var wss = new WebSocketServer(server: app); 

//all connected to the server users 
var users = ;

客户

//connecting to our signaling server
var HOST = location.origin.replace(/^http/, 'ws');
var conn = new WebSocket(HOST);

conn.onopen = function ()  
   console.log("Connected to the signaling server"); 
;

Heroku 显示 WebSocket 的一些问题。提前致谢。

【问题讨论】:

您在端口 8081 上运行您的服务器,而在客户端上您尝试连接到 Web 套接字的默认端口,即 80。尝试在客户端请求中包含 8081 端口号。 如果我在两边都使用相同的端口,它可以在本地主机上工作,但它与 heroku 有一些问题.. Chattestarpit.herokuapp.com。请检查控制台。谢谢。 【参考方案1】:

实际上,如果您看到“heroku 日志”,那么您可以发现运行应用程序的端口是一个随机的 5 位数字。 (如 28896、53365 等)它实际上从未在下半场运行 || 8081.

你需要调试真正的根本原因,你能做的是

在您的应用文件夹中打开终端 键入命令heroku logs -t --app <your-app-name> 它将提供所有日志,包括基于 nodejs 的控制台 据此相应地应用修复

希望有帮助!

【讨论】:

【参考方案2】:

对我来说是从process.env.PORT 获得端口,然后它开始工作。

Heroku 完全忽略我的 '.dev`s 文件

【讨论】:

以上是关于WebSocket 连接到“ws://chattestarpit.herokuapp.com/”失败:WebSocket 握手期间出错:意外响应代码:503的主要内容,如果未能解决你的问题,请参考以下文章

内容安全策略拒绝连接到 Websocket 错误

actioncable 无法连接到 websocket

WebSocket 连接到自签名服务器

WCF 连接到 Websocket 服务器

在android java中连接到服务器websocket

WebSocket 连接到 'ws://localhost:4444/subscriptions' 失败:WebSocket 在连接建立之前关闭