页面重载上的多个Socket.Io连接

时间:2014-08-05 06:49:37

标签: node.js socket.io

我必须在浏览器上显示node.js服务器端日志,所以我使用了socket.io和tail模块。 除了一个问题,代码工作正常。 问题是当我第一次访问页面时,它的显示在浏览器上显示正确的日志,但是当刷新页面然后日志出现两次然后再刷新页面然后它出现三次,依此类推。 这是我的代码

logs.ejs

<% script('/js/socket.io.js') -%>
<% script('/js/jquery.min.js') -%>

 <script>
   // creates socket on page load

$(function() {
  var socket = null;
  var streamer = null;
  var socket = io.connect('http://localhost');
  streamer = $('#streamer');

  // outputs a new line to browser for each new line in file
   socket.on('new-data', function(data) {

    var newLine = $('<div>' + data.value + '</div>');
    streamer.append(newLine);
  });
});
</script>

 <div id="streamer">
 </div>

app.js

var app            = express()
   ,server = require('http').Server(app)
   ,io = require('socket.io')(server)
   server.listen(3000)

   Tail = require('tail').Tail;

   io.sockets.on('connection', function(socket) {   
   tail = new Tail("log.log");    // file to stream

   tail.on('line', function(data) {
   return io.sockets.emit('new-data', {
    channel: 'stdout',
    value: data
   });
  });
 });

我不知道,但我认为它在页面刷新时创建了多个连接。

0 个答案:

没有答案