Node.js 带有nodejs的socket.io找不到所需的js文件

Node.js 带有nodejs的socket.io找不到所需的js文件,node.js,socket.io,Node.js,Socket.io,我将我的应用部署到no.de。我对socket.io的第一个问题是,我必须更改它正在侦听的端口 io = require('socket.io').listen(3000), 更改端口后,现在找不到socket.io.js所需的脚本 script(src="/socket.io/socket.io.js") 我也尝试在港口提供绝对路径,但没有成功。 在localhost上,它工作得很好,所以我真的很困惑如何修复这个问题 GET http://twtups.no.de/socket.i

我将我的应用部署到no.de。我对socket.io的第一个问题是,我必须更改它正在侦听的端口

  io = require('socket.io').listen(3000),
更改端口后,现在找不到socket.io.js所需的脚本

 script(src="/socket.io/socket.io.js")
我也尝试在港口提供绝对路径,但没有成功。 在localhost上,它工作得很好,所以我真的很困惑如何修复这个问题

 GET http://twtups.no.de/socket.io/socket.io.js 404 (Not Found)
 Uncaught ReferenceError: io is not defined
再看一眼我的日志,就会发现这张//我想这是《快报》上的,不知道是否相关

 Warning: connection.session() MemoryStore is not
 designed for a production environment, as it will leak
 memory, and obviously only work within a single process.
[ Jan 11 11:10:09 Method "start" exited with status 0. ]
更新,工作原理如下

var app = express.createServer();
var io = require('socket.io').listen(app);
app.listen(80);

我不确定发生了什么(它应该可以工作),但您可以尝试将socket.io.js放在主站点的某个位置


实际上,端口的更改只对WebSocket服务器重要。导入
socket.io
时,
/socket.io/socket.io.js
url将自动添加到应用程序中,因此该文件仍在主站点上提供。你说的似乎很奇怪,可能与
no.de
有关。不过我不确定。

我不确定发生了什么(它应该可以工作),但您可以尝试将socket.io.js放在主站点的某个位置


实际上,端口的更改只对WebSocket服务器重要。导入
socket.io
时,
/socket.io/socket.io.js
url将自动添加到应用程序中,因此该文件仍在主站点上提供。你说的似乎很奇怪,可能与
no.de
有关。不过我不确定。

您使用的是什么快速版

API已从Express 2.x更改为3.x,因此答案在wiki的Socket.IO兼容性部分中:

Socket.IO的
.listen()
方法将
http.Server
实例作为参数。
从3.x开始,
express()
的返回值不是
http.Server
实例。要使Socket.IO使用Express 3.x,请确保手动创建并将
http.Server
实例传递给Socket.IO的
。listen()
方法:


您使用的是什么快速版本

API已从Express 2.x更改为3.x,因此答案在wiki的Socket.IO兼容性部分中:

Socket.IO的
.listen()
方法将
http.Server
实例作为参数。
从3.x开始,
express()
的返回值不是
http.Server
实例。要使Socket.IO使用Express 3.x,请确保手动创建并将
http.Server
实例传递给Socket.IO的
。listen()
方法:


显示整个代码,可能您的Express应用程序在端口80上运行,Socket.IO在端口3000上提供服务,这是您的问题(我认为)。尝试通过指定整个路径来包含SIO文件。是的,我使用的是80/3000,如果我尝试在它提供的同一端口上为它们提供服务,并且出现错误:/My bad现在工作正常,我应该这样做。听着(应用程序),但我仍然会遇到我告诉过你的恼人的延迟。我想我会去github询问他们。感谢您展示了整个代码,可能您的Express应用程序在端口80上运行,Socket.IO在端口3000上提供服务,这是您的问题(我想)。尝试通过指定整个路径来包含SIO文件。是的,我使用的是80/3000,如果我尝试在它提供的同一端口上为它们提供服务,并且出现错误:/My bad现在工作正常,我应该这样做。听着(应用程序),但我仍然会遇到我告诉过你的恼人的延迟。我想我会去github询问他们。ThanksI更改了链接,因此它现在指向,但我得到了一个新错误UncaughtTypeError:Object#没有方法“connect”。我应该提到我检查了日志和socket.io启动properly@andrei这是CDN上的一个非常旧的版本,当前版本是
0.8.7
我更改了链接,因此它现在指向,但我得到了一个新的错误Uncaught TypeError:Object#没有方法“connect”。我应该提到我检查了日志和socket.io启动properly@andrei这是CDN上的一个非常旧的版本,当前版本是
0.8.7
var app = express()
  , http = require('http')
  , server = http.createServer(app)
  , io = require('socket.io').listen(server);

server.listen(3000);