簡體   English   中英

Node.js服務器上帶有socket.io的ERR_CONNECTION_REFUSED

[英]ERR_CONNECTION_REFUSED with socket.io on Node.js server

我使用Node.js進行了基本的客戶端-服務器設置:

服務器

var port = 8000;
var http = require('http');
var express = require('express');
var app = express();
var server = http.createServer(app).listen(port);
var io = require('socket.io').listen(server);

app.use(express.static(__dirname + '/site'));
app.get('/', function(req, res) {
    res.sendFile(__dirname + '/site/index.html');
});

server.listen(port, function() {
    console.log("Listening on port " + port + "...");
});

io.on('connection', function(socket) {
    console.log("A user connected");
});

客戶

var socket = io.connect("http://72.53.66.228:8000");

socket.on('connect', function() {
    console.log("Connected.");
});

但是,我一直在瀏覽器的控制台中收到此錯誤,並且我不確定為什么:

GET http://72.53.66.228:8000/socket.io/?EIO=3&transport=polling&t=1419738402131-5 net::ERR_CONNECTION_REFUSED

我還應該注意,我正在運行Apache Web服務器,並且正在使用ProxyPass指令讓Node.js 在子目錄中提供服務

主要問題是道路。 由於Apache僅代理/ CAH /。 路徑。

io.connect("http://72.53.66.228/CAH");的麻煩io.connect("http://72.53.66.228/CAH"); socket.io做了一個“砍刀”技巧,將/ CAH解釋為房間而不是路徑。

解決方案是這樣設置路徑選項: io.connect({path:'/CAH/socket.io'}) ,這會使socket.io客戶端連接到正確的URL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM