Heroku上的WebSocket ERR_CONNECTION_REFUSED

时间:2016-01-16 20:25:04

标签: javascript node.js heroku websocket

我正在尝试使用WebSockets在Heroku上运行节点js应用。但是,我无法解决此错误(如在Chrome浏览器中看到的那样)

  

WebSocket与' wss://myappname.herokuapp.com的连接:27225 /'失败:连接建立错误:net :: ERR_CONNECTION_REFUSED

我正在使用' wss'因为Heroku运行在HTTPS上。

我的客户端代码是:

$.get("https://myappname.herokuapp.com/port",function(data){
    port = data;
    console.log(data);
    host = 'wss://myappname.herokuapp.com:' + port + '/';
    ws = new WebSocket(host);
  });

我的服务器端代码是:

var WebSocketServer = require("ws").Server
var fs = require('fs');
var express = require('express'); 
var app = express();
var http = require('http');
var port = process.env.PORT || 5000;
var request = require('request');

var server = http.createServer(app);
var serverOnPort = server.listen(port);

console.log("Server listening on port ",port);

var wss = new WebSocketServer({server: serverOnPort});
console.log("websocket server created");

任何帮助将不胜感激。

谢谢。

2 个答案:

答案 0 :(得分:9)

所以我似乎试图用端口号覆盖它。只需将主机用作wss://myappname.herokuapp.com/即可。

答案 1 :(得分:0)

我也发现了这个问题。看来Heroku会自动路由端口号。它允许在url中指定端口号。在我的chrome中,它显示ERR_CONNECTION_RESET。 XMLHttpRequest也会发生这种情况。使用localhost或其他不是Heroku的服务器进行测试时仍需要端口号。