Express 4.0中的Heroku socket.io示例错误

所以我试图使用示例heroku应用程序: https : //github.com/lstoll/socket-io-chat-heroku作为模板来build立我自己的socket.io应用程序,但我运行在Express 4.0,节点0.10.x和Socket.io 0.9.16。

现在的问题是,当我运行我的服务器,一切都很好,但是当我运行我的客户端,我得到以下错误:

Uncaught ReferenceError: require is not defined socket.io.js:12 Uncaught ReferenceError: io is not defined chat2:2 

我的相关服务器代码如下所示:

  var app = express(); var http = require('http'); var server = http.createServer(app); var sio = require('socket.io'); var port = 3000 || process.env.PORT; server.listen(port); var io = sio.listen(server); io.sockets.on('connection'), function(socket) { ... }); 

在我的客户端,我有以下几点:我已经尝试了两个(顺便说一下,这是玉器):

  script(src='/socket.io/socket.io.js') OR script(src='http://localhost:3000/socket.io/socket.io.js') var socket = io.connect() OR var socket = io.connect('http://localhost:3000') 

这些选项都没有工作,总是导致客户端的错误。 Express 4.0有什么特别的吗? 我在这里问了一个非常类似的问题: Node.js /socket.io/socket.io.js没有find明确的4.0,但这是另一个尝试让聊天工作与不同的模板。

更新和编辑:经过一些工作,我能够使用Express 4.0和Socket.io部署一个heroku应用程序,地址为: http ://salty-escarpment-7398.herokuapp.com/chat。

现在的问题是将其整合到我目前的应用程序,经过很多工作,现在我得到一个错误:

  22:19:56 web.1 | GET /socket.io/?EIO=2&transport=polling 404 26ms - 1.67kb 22:19:59 web.1 | GET /socket.io/?EIO=2&transport=polling 404 25ms - 1.67kb 

我有:

  io.set('transports', ['xhr-polling']); io.set('polling duration', 10); 

将其设置为xhr-polling,并且我的服务器代码与上面的代码非常相似。 页面加载,但是,只有当试图发送聊天没有任何反应,404开始出现。

谢谢

默认情况下,Socket.IO 1.0.4允许轮询和websocket传输。 您删除了投票传输! 返回投票运输:

 io.set('transports', ['websocket', 'flashsocket', 'htmlfile', 'xhr-polling', 'jsonp-polling', 'polling']);