http:// [app-name] .herokuapp.com / socket.io / 1 /?t = 1436904053183 404 Not Found

时间:2015-07-14 20:11:15

标签: node.js heroku websocket socket.io

我的网站上出现以下错误。

  

http://[app-name].herokuapp.com/socket.io/1/?t=1436904053183 404 Not Found

我的应用是用Socket.io构建它的聊天。我做了一个研究,并弄清楚它正在45361(这个端口是由Heroku设置)和我的client.js正在监听的端口,它正在以不同的方式收听。如何告诉我的client.js从我的server.js文件中听同一个端口?

我的server.js文件如下所示:

app.configure(function() {
    app.set('port', process.env.PORT || 3000);
    app.set('ipaddr', process.env.IP || "127.0.0.1");
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(express.static(__dirname + '/public'));
    app.use('/js', express.static(__dirname + '/js'));
    app.use('/icons', express.static(__dirname + '/icons'));
    app.set('views', __dirname + '/views');
    app.engine('html', require('ejs').renderFile);

    /* Store process-id (as priviledged user) */
    try {
        npid.create('/var/run/advanced-chat.pid', true);
    } catch (err) {
        console.log(err);
        //process.exit(1);
    }

});

app.get('/', function(req, res) {
  res.render('index.html');
});

app.listen(app.get('port'), function() {
  console.log("Node app is running on port:" + app.get('port'))
})

在我的文件client.js中我有这样的东西:

var socket = io.connect("//[app-name].herokuapp.com");

我也试过了:

var socket = io.connect("http://[app-name].herokuapp.com/");

感谢您的时间!

1 个答案:

答案 0 :(得分:0)

您可以尝试在客户端

中正确形成网址
    window.location.origin = window.location.origin || (window.location.protocol + '//' + window.location.hostname + ':' + window.location.port);
    var socket = io.connect(window.location.origin);