Node.js + 阿帕奇 - https://localhost:3000/socket.io/ ERR_CONNECTION_REFUSED
Node.js + Apache - https://localhost:3000/socket.io/ ERR_CONNECTION_REFUSED
我正在 Node.js 中实现一个简单的游戏。我的客户端代码有一个 client.js
,在远程服务器上有一个 server.js
运行ning,它们都使用套接字在 端口 3000[=50= 上进行通信]
我也在 运行在 端口 80 上连接 Apache,并在我的 Apache 配置文件中使用 ProxyPass
来路由 url mywebsite.io/agario
到我的 nodejs 服务器。
<Location /agario>
ProxyPass http://localhost:3000/
ProxyPassReverse http://localhost:3000/
</Location>
我也在使用 cloudflare 通过 url https://agario.mywebsite.io
路由我的网络服务器 167.179.xx.xx 以便我可以使用HTTPS.
问题
当我尝试连接到我的网站时 https://agario.mywebsite.io/agario 我收到以下错误:
socket.io-1.4.5.js:1 GET https://localhost:3000/socket.io/?EIO=3&transport=polling&t=MakAMgZ net::ERR_CONNECTION_REFUSED
当我在代码中指定连接到远程服务器时,我不清楚为什么我的客户端代码试图连接到本地主机。可能我只是对如何 运行 node.js 服务器感到困惑,因为这是我第一次尝试 Node.js 和套接字。
client.js
...
var socket;
socket = io.connect('https://agario.mywebsite.io/agario');
...
server.js
var app = express();
var server = app.listen(3000, listen);
// This call back just tells us that the server has started
function listen() {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://' + host + ':' + port);
}
app.use(express.static('public'));
var io = require('socket.io')(server);
io.sockets.on('connection',
function(socket) {
console.log("We have a new client: " + socket.id);
...
});
如果我遗漏了任何重要信息,请告诉我,我会更新我的问题,谢谢。
您的服务器正在侦听端口 3000,并且您正在尝试通过 443 连接它,您应该尝试这样的操作
socket.connect('https://ip:3000');
但是,如果您确定您的客户端使用与服务器相同的端口或者您有端口转发,那么请尝试使用 netcat
只是为了确保问题不是出在您的脚本上网络配置:
nc -zv -w1 ip port
我正在 Node.js 中实现一个简单的游戏。我的客户端代码有一个 client.js
,在远程服务器上有一个 server.js
运行ning,它们都使用套接字在 端口 3000[=50= 上进行通信]
我也在 运行在 端口 80 上连接 Apache,并在我的 Apache 配置文件中使用 ProxyPass
来路由 url mywebsite.io/agario
到我的 nodejs 服务器。
<Location /agario>
ProxyPass http://localhost:3000/
ProxyPassReverse http://localhost:3000/
</Location>
我也在使用 cloudflare 通过 url https://agario.mywebsite.io
路由我的网络服务器 167.179.xx.xx 以便我可以使用HTTPS.
问题
当我尝试连接到我的网站时 https://agario.mywebsite.io/agario 我收到以下错误:
socket.io-1.4.5.js:1 GET https://localhost:3000/socket.io/?EIO=3&transport=polling&t=MakAMgZ net::ERR_CONNECTION_REFUSED
当我在代码中指定连接到远程服务器时,我不清楚为什么我的客户端代码试图连接到本地主机。可能我只是对如何 运行 node.js 服务器感到困惑,因为这是我第一次尝试 Node.js 和套接字。
client.js
...
var socket;
socket = io.connect('https://agario.mywebsite.io/agario');
...
server.js
var app = express();
var server = app.listen(3000, listen);
// This call back just tells us that the server has started
function listen() {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://' + host + ':' + port);
}
app.use(express.static('public'));
var io = require('socket.io')(server);
io.sockets.on('connection',
function(socket) {
console.log("We have a new client: " + socket.id);
...
});
如果我遗漏了任何重要信息,请告诉我,我会更新我的问题,谢谢。
您的服务器正在侦听端口 3000,并且您正在尝试通过 443 连接它,您应该尝试这样的操作
socket.connect('https://ip:3000');
但是,如果您确定您的客户端使用与服务器相同的端口或者您有端口转发,那么请尝试使用 netcat
只是为了确保问题不是出在您的脚本上网络配置:
nc -zv -w1 ip port