以下是使用 express 实现 socket.io 的方法。
var express = require('express')
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
//serve static files and index.html
app.use(express.static(__dirname + '/'));
app.get('/', function(req, res){ res.sendFile(__dirname + '/index.html'); });
io.on('connection', function(socket){
//logic handled in here
});
http.listen(7000,function(){ console.log('listening on port: 7000'); });
上面的代码有一个路由来处理 index.html 的服务,但是你当然可以像在任何其他应用程序中一样使用其他路由进行扩展。
以下是在 express 生成器中的路由中访问 socket.io 的方法。
在 www:
var server = http.createServer(app);
var io = require('socket.io')(server);
module.exports = {io:io}
在 index.js 中
router.get('/', function(req, res, next) {
var io = require('../bin/www')
console.log('I now have access to io', io)
res.render('index', { title: 'Express' });
});
请注意,上面的示例纯粹是向您展示如何访问 index.js 中的 io 对象。有许多更好的方法来要求 socket.io 并传递 io 对象,但这些决定似乎超出了这个问题的范围。