Node.js - 使用Express.io和Router对象处理Socket.io路由

时间:2014-12-08 14:25:37

标签: node.js express socket.io express.io

我正在努力使用Express.io,Express 4和一些路由,我需要你的帮助!

此处发布的代码有效

我的问题是我喜欢将逻辑与app.js分离到每个路径文件(即map.js)。遗憾的是,我无法在互联网上找到任何使用Express 4和Router对象的多个路径文件 express.io的示例。

请您快速查看并以正确的方式解决这个问题吗?

app.js

var express = require('express.io');
var app = express();
app.http().io();
// ...
var map = require('./routes/map');
app.use('/map', map);

app.io.route('ready', function(req) {
    setInterval(function() {
        req.io.emit('talk', {
            message: 'Random greeting'
        });
    }, 500);
});

/routes/map.js (此文件使用标准的Express 4模块)

var models = require('../models');
var path = require('path');
var express = require('express');
var router = express.Router();

router.get('/', function(req, res) {

    res.sendfile(path.resolve(__dirname + '../../client/mapClient.html'), function(err) {
        if(err) {
            console.log(err);
        }
    });
});

module.exports = router;

mapClient.html

<script src="/socket.io/socket.io.js"></script>
<script>
io = io.connect()

// Emit ready event.
io.emit('ready') 

// Listen for the talk event.
io.on('talk', function(data) {
    // do something with data.message
})  

</script>

0 个答案:

没有答案