我正在尝试使用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");
任何帮助将不胜感激。
谢谢。
答案 0 :(得分:9)
所以我似乎试图用端口号覆盖它。只需将主机用作wss://myappname.herokuapp.com/
即可。
答案 1 :(得分:0)
我也发现了这个问题。看来Heroku会自动路由端口号。它允许在url中指定端口号。在我的chrome中,它显示ERR_CONNECTION_RESET。 XMLHttpRequest也会发生这种情况。使用localhost或其他不是Heroku的服务器进行测试时仍需要端口号。