我正在尝试构建NodeJS / Express / SocketIO应用程序。
进口:
var express = require('express')
, app = express()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server)...
配置:
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
在我的Jade模板中:
script(type='text/javascript', href='/socket.io/socket.io.js')
但是当我试图在
上找到它时,'/socket.io/socket.io.js'不可用http://localhost:3000/socket.io/socket.io.js
正如它所说:
不能GET /socket.io/socket.io.js
如何从已安装的模块提供socket.io.js?
由于
答案 0 :(得分:5)
您需要将客户端代码从内部Socket.io目录复制到您的公共目录。在Socket 0.9中,可分发文件的路径为node_modules/socket.io/node_modules/socket.io-client/dist
。
答案 1 :(得分:5)
您不必复制任何文件,socket.io将负责文件的传递。
var express = require('express'),
app = new express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server)
答案 2 :(得分:2)
在Express 3/4中你可以像这样初始化socket.io:
var io = require("socket.io")(app.listen(80));
答案 3 :(得分:-1)
出现错误,请使用
script(type='text/javascript', src='/socket.io/socket.io.js')
而不是
script(type='text/javascript', href='/socket.io/socket.io.js')