我将我的应用程序部署到no.de上。我在使用socket.io时遇到的第一个问题是,我必须更改它正在侦听的端口。
io = require('socket.io').listen(3000),现在更改端口后,找不到所需的脚本socket.io.js
script(src="/socket.io/socket.io.js")我也尝试过在端口中给出绝对路径,但这不起作用。在本地主机上,它工作得很好,所以我真的很困惑如何解决这个问题。
GET http://twtups.no.de/socket.io/socket.io.js 404 (Not Found)
Uncaught ReferenceError: io is not defined再看一眼我的日志,我想这是来自express,不知道是否相关。
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);发布于 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()方法:
var app = express()
, http = require('http')
, server = http.createServer(app)
, io = require('socket.io').listen(server);
server.listen(3000);发布于 2012-01-11 19:38:11
我不确定发生了什么(它应该起作用了),但是你可以试着把socket.io.js放在你的主站点的某个地方。
实际上,端口的更改只对WebSocket服务器有影响。当您导入socket.io时,/socket.io/socket.io.js url会自动添加到您的应用程序中,因此该文件仍将在您的主站点上提供服务。你所说的似乎很奇怪,可能与no.de有关。不过我不太确定。
https://stackoverflow.com/questions/8817708
复制相似问题