客户端无法findsocket.io.js

我已经阅读了关于这个主题的所有其他post,但我找不到我的问题的答案。 我有Express服务器运行在默认端口或5000 (process.env.PORT || 5000) 。 然后我添加了socket.io但客户端无法findsocket.io.js文件。 经过一些testing后,我认为有一些端口冲突问题。 这是我的服务器端代码:

 var express = require('express'), app = express(), bodyParser = require('body-parser'), server = require('http').createServer(app), io = require('socket.io').listen(server); app.set('port', (process.env.PORT || 5000)); 

编辑:客户端的东西: 在这里输入图像描述

编辑2:另外,我不认为这是重要的,但我在Heroku本地进行testing。

编辑3:目录结构:

 --api --images --node_modules --scripts --pages main_page.ejs --styles composer index.js npm-debug package 

编辑4:凹凸

问题

Socket.IO无法拦截加载到socket.io.js的/socket.io/的请求。 这意味着虚拟socket.io.js文件永远不会被加载,你会得到上述的404错误。

改变这个:

 app.set('port', (process.env.PORT || 5000)); app.listen(app.get('port', function() { ... }); 

对此:

 app.set('port', (process.env.PORT || 5000)); server.listen(app.get('port'), function() { ... }); 

这防止Express立即拦截到/socket.io/的请求,并允许加载文件。