通过Socket io从客户端启动和停止Nodejs服务器上的功能

时间:2015-11-13 09:22:13

标签: node.js websocket socket.io

-----------------------------client socket ----------------------  
 $(document).ready(function () {
  var socket = io.connect('http://localhost:8282');
  $('#stopbtn').click(function(){
    socket.emit('RandomStatus',{message:'stop'});
  })
  $('#startbtn').click(function(){
    socket.emit('RandomStatus',{message:'start'});
  })
});

---------------------------------- Nodejs服务器----------- ---------

var io = require('socket.io').listen(app.listen(8282));
io.set('log level', 1);
var randomizerjson = require('./randomizerjson');
io.sockets.on('connection', function (socket) {
    var intervalId;
    socket.on('RandomStatus', function (data) {
        var status = data.message;
        if(status=='start'){
                 //random data after 700 milisecond and send
                intervalId= setInterval(function () {
                var randomData = randomizerjson.getRandomData1();
                //send random data somewhere
                io.sockets.emit('dataSet', randomData);
            }, 700);
        }
        if(status=='stop'){
            clearInterval(intervalId); 
        }

    });

    socket.on('disconnect', function () {
        console.log('user disconnect');
    });
});

当我点击开始按钮时,我可以发送随机数据。但是,当我单击停止按钮时,我无法clearInterval停止发送随机数据。 当我收到'停止'我想停止发送随机数据。信息。但那不起作用。任何人都可以帮助我并告诉我原因。 谢谢你提前。

0 个答案:

没有答案