首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有nodejs的socket.io找不到所需的js文件

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

Stack Overflow用户
提问于 2012-01-11 18:26:07
回答 2查看 1.6K关注 0票数 1

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

代码语言:javascript
复制
  io = require('socket.io').listen(3000),

现在更改端口后,找不到所需的脚本socket.io.js

代码语言:javascript
复制
 script(src="/socket.io/socket.io.js")

我也尝试过在端口中给出绝对路径,但这不起作用。在本地主机上,它工作得很好,所以我真的很困惑如何解决这个问题。

代码语言:javascript
复制
 GET http://twtups.no.de/socket.io/socket.io.js 404 (Not Found)
 Uncaught ReferenceError: io is not defined

再看一眼我的日志,我想这是来自express,不知道是否相关。

代码语言:javascript
复制
 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. ]

更新,工作方式是这样的

代码语言:javascript
复制
var app = express.createServer();
var io = require('socket.io').listen(app);
app.listen(80);
EN

回答 2

Stack Overflow用户

发布于 2013-01-20 02:12:01

您使用的是什么速成版

该应用编程接口已从Express2.x更改为3.x,因此答案在Migrating from 2.x to 3.x维基上的Socket.IO compatibility部分:

as的.listen()方法接受一个http.Server实例作为参数。

从3.x__开始,express()的返回值不是http.Server实例。要让Socket.IO与Express3.x一起工作,请确保手动创建http.Server实例并将其传递给Socket.IO的.listen()方法:

代码语言:javascript
复制
var app = express()
  , http = require('http')
  , server = http.createServer(app)
  , io = require('socket.io').listen(server);

server.listen(3000);
票数 1
EN

Stack Overflow用户

发布于 2012-01-11 19:38:11

我不确定发生了什么(它应该起作用了),但是你可以试着把socket.io.js放在你的主站点的某个地方。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8817708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档