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

6

我对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端口号。 - prerak
如果我在两端使用相同的端口,在本地主机上可以工作,但在Heroku上会出现一些问题... 请检查console。 谢谢。 - Arpit Yadav
2个回答

0

实际上,如果你查看 "heroku logs",你会发现应用程序运行的端口是一个随机的5位数字(例如28896、53365等),它从未真正运行在第二个半部分 || 8081 上。

你需要调试实际的根本原因,你可以做的是:

  • 在你的应用程序文件夹中打开终端
  • 输入命令 heroku logs -t --app <your-app-name>
  • 它将提供所有日志,包括基于nodejs的控制台
  • 根据这些修复问题

希望这有所帮助!


0
对我来说,从 process.env.PORT 获取端口号,然后开始工作。
Heroku 完全忽略了我的 `.dev` 文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接