节点js,如何将Socket.io与胡子结合起来

时间:2016-12-29 06:59:34

标签: node.js socket.io mustache

Socket.io可以在一般的html页面中使用,但是它不能在小胡子页面中使用?

例如:

app.js

var app = express();
app.use(express.static(path.join(__dirname, 'public')));
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'mustache'); // name your templates
app.engine('mustache', require('hogan-middleware').__express); 
var routes = require('./routes/index');
app.use('/', routes);

路由\ index.js

var express = require('express');
var router = express.Router();
var app = express();
var server = require('http').Server(app);
var io = require('socket.io').listen(server);
var request = require('request');
var serialport = require('serialport');
var Serialport = serialport;

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

  res.render('machine_mode', { title: 'test' });
});

io.sockets.on('connection',function(socket){
    var str='hello';
    io.sockets.emit('view',str);
});

视图\ test.mustache

  <body>
    </body>
    <script src="/js/jquery-1.9.1.min.js"></script>
    <script src="/socket.io/socket.io.js"></script>
    <script>
    jQuery(function($){
        var socket = io.connect();
        socket.on('str',function(data){

        })

    }); 

测试页错误: 无法获取

http://localhost:8001/socket.io/socket.io.js 

1 个答案:

答案 0 :(得分:0)

<强> app.js

var express = require('express');
var router = express.Router();
var app = express(); // Brackets Missing 
var server = require('http').createServer(app); // Need to do like this

var io = require('socket.io').(server); // Need to pass server 

var request = require('request');
var serialport = require('serialport');
var Serialport = serialport;

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

  res.render('machine_mode', { title: 'test' });
});

io.on('connection',function(socket){    // io.socket is not required 
    var str='hello';
    sockets.emit('view',str);
});