socket.io给了我奇怪的输出



当我重新启动服务器时,我看到了奇怪的输出。。你能澄清一下我为什么得到这个输出吗。通过在chrome中的开发者工具中看到网络,我发现它每次都在发出请求。我的目标是尽快测试套接字断开,这就是我设置心跳间隔和心跳超时的原因。

我的服务器端代码为===>>

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
io.set('heartbeat interval',10);
io.set('heartbeat timeout',25);
io.set('transports',  'xhr-polling');
app.get('/', function(req, res){
  res.sendfile(__dirname + '/index.html');
});
io.on('connection', function(socket){
  var currentdate = new Date(); 
  var datetime = "Last Sync: " + currentdate.getDate() + "/"
                  + (currentdate.getMonth()+1)  + "/" 
                  + currentdate.getFullYear() + " @ "  
                  + currentdate.getHours() + ":"  
                  + currentdate.getMinutes() + ":" 
                  + currentdate.getSeconds();
  console.log("connection established...!!!" + datetime);
  socket.on('chat message', function(msg){
    io.emit('chat message', msg);
  });
  socket.on('disconnect', function(){
    console.log("disconnection established...!!!");
  });
});
http.listen(3000, function(){
  console.log('listening on *:3000');
});

并且输出为1) 。我启动了服务器2) 。客户端已连接3) 。我清除了控制台4) 。我关闭了服务器,然后重新启动。

重新启动服务器后的输出是这样的。有人能告诉我为什么会发生这种事吗。只有一个客户端有很多多重连接和断开连接。

连接已建立。。。!!!上次同步:2014年11月11日@8:11:37断开连接已建立。。。!!!连接已建立。。。!!!上次同步时间:2014年11月11日上午8:11:40断开连接已建立。。。!!!连接已建立。。。!!!上次同步:2014年11月11日@8:11:47断开连接已建立。。。!!!连接已建立。。。!!!上次同步:2014年11月11日@8:11:54断开连接已建立。。。!!!连接已建立。。。!!!上次同步:2014年11月11日@8:12:14断开连接已建立。。。!!!连接已建立。。。!!!上次同步:2014年11月11日@8:12:35断开连接已建立。。。!!!

我认为您的客户端代码有一些问题。请查看以下代码。它正在发挥作用。服务器端代码"hat.js"

var app = require('express')(),
    http = require('http').Server(app),
    io = require('socket.io')(http);
app.get('/', function(req, res){
  res.sendfile('index.html');
});
io.on('connection', function(socket){
 console.log('a user connected');
 socket.on('disconnect', function(){
    console.log('user disconnected');
 });
 socket.on('chat_message', function(msg){
    console.log('message: ' + msg);
 });
  socket.emit("progress",90);
});
http.listen(5000, function(){
  console.log('listening on *:5000');
});

客户端代码在这里index.html'

<!doctype html>
<html>
<head>
    <title>Socket.IO chat</title>
    <script src="/socket.io/socket.io.js"></script>
    <script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
</head>
<body>
    <ul id="messages"></ul>
    <input id="m" autocomplete="off" />
    <button id="btn">Send</button>
    <script>
    var socket = io();
    $('#btn').click(function(e) {
        console.log('ok');
        //e.preventDefault();
        socket.emit('chat_message', $('#m').val());
        $('#m').val('');
        return false;
    });
    socket.on('chat_message', function(msg) {
        $('#messages').append($('<li>').text(msg));
    });
    socket.on("progress", function(val) {
        console.log(val);
    });
    </script>
</body>
</html>

相关内容

  • 没有找到相关文章

最新更新