2017-04-18 125 views

回答

3

这里是你如何实现插座。与明确的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对象,但这些决定似乎超出了这个问题的范围。

+0

我可以在哪里添加? –

+0

我想在'routes/index.js'中使用io对象,但是按照每年的代码,一切都在'app.js'文件中执行 –

+0

您可以在project_root/bin/www中进行这些更改。 – user2263572

相关问题