【问题标题】:GET http://MY_DOMAIN.com/socket.io?EIO=3&transport=polling&t=1449205340962-2 404 (Not found)获取 http://MY_DOMAIN.com/socket.io?EIO=3&transport=polling&t=1449205340962-2 404(未找到)
【发布时间】:2016-03-08 23:21:33
【问题描述】:

我已经部署了我的代码,但无法让 socket.io 在生产环境中工作。

我已经用命令npm install --save socket.io安装了socket.io节点模块

这是我app.js中的相关代码:

var debug = require('debug')('chat');
var express = require('express');
var app = express();

app.set('port', process.env.PORT || 8080);

var server = app.listen(app.get('port'), 'APP_PRIVATE_IP_ADDRESS', function() {
  debug('Express server listening on port ' + server.address().port);
});

var io = require('socket.io')(server);

我正在使用浏览器客户端 <script src="https://cdn.socket.io/socket.io-1.3.7.js"></script>

此外,以下客户端代码不会打印连接:

var socket = io();
socket.on('connect', function(){
    console.log('connect');
});

感谢您的帮助!

Here is my site where I've deployed this code.

【问题讨论】:

  • 我认为发生的事情是您在require('socket.io') 之前调用app.listen。看看 Socket.io docs.

标签: javascript node.js sockets


【解决方案1】:

您不应该那样使用express。您应该使用http 包创建一个服务器并将express 附加到它:

var httpServer;
var http           = require( "http" );
var express        = require( "express" );
var app            = express();
var io             = require( 'socket.io' )( httpServer ); 

httpServer = http.createServer( app ).listen( process.env.PORT, process.env.IP || "0.0.0.0", function() {  
    // server code here
});

【讨论】:

猜你喜欢
  • 2017-09-04
  • 2020-11-24
  • 1970-01-01
  • 2017-02-25
  • 1970-01-01
  • 1970-01-01
  • 2021-07-09
  • 2019-12-15
  • 2017-06-04
相关资源
最近更新 更多