我正在尝试按照此处的说明进行操作
但是,我似乎太愚蠢了解为什么我不能在客户端引用socket.io.jss。我在这里看过类似的帖子,但看起来不对:NodeJS Express not serving '/socket.io/socket.io.js'
以下是完整的应用程序列表:
var application_root = __dirname,
express = require('express'),
//Web framework
path = require('path'),
//Utilities for dealing with file paths
pg = require('pg'); //Postgres integration
//Create server
var app = express();
// Configure server
app.configure(function () {
//parses request body and populates request.body
app.use(express.bodyParser());
//checks request.body for HTTP method overrides
app.use(express.methodOverride());
//perform route lookup based on url and HTTP method
app.use(app.router);
//Where to serve static content
app.use(express.static(path.join(application_root, 'public')));
//Show all errors in development
app.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});
//Start server
var port = 4711;
app.listen(port, function () {
console.log('Express server listening on port %d in %s mode', port, app.settings.env);
});
//Start socket.io
var server = require('http').createServer(app),
io = require('socket.io').listen(server);
现在,如果我尝试引用客户端js,我会得到404。
<script src="/socket.io/socket.io.js"></script>
任何人都知道为什么Express 3不允许socket.io为其客户端lib服务?
答案 0 :(得分:4)
我在这里找到了答案
Socket.io is not served in /socket.io/socket.io.js
通读http://expressjs.com/api.html#app.listen,请注意如何操作 app.listen已定义。
简而言之:将app.listen替换为server.listen。