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 连接到 'ws://localhost:4444/subscriptions' 失败:WebSocket 在连接建立之前关闭