2014-11-11 2 views
0

когда я перезапускаю свой сервер, я вижу странный вывод .. не могли бы вы пояснить, почему я получаю этот вывод. Видя сеть в инструменте разработчика в хроме, я обнаружил каждый раз, когда он делает запрос. Моя цель состояла в том, чтобы как можно скорее проверить разъединение разъемов, поэтому я установил интервал сердцебиения и время ожидания пульса.socket.io дает мне странный вывод

мой серверный код, как === >>>

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). i очищенная консоль 4). я закрыл сервер и снова перезапустился.

и выход после перезапуска сервера - это. Может ли кто-нибудь сказать мне, почему это происходит. Существует так много множественных соединений и разъединений только с одним клиентом.

 
connection established...!!!Last Sync: 11/11/2014 @ 8:11:37 
disconnection established...!!! 
connection established...!!!Last Sync: 11/11/2014 @ 8:11:40 
disconnection established...!!! 
connection established...!!!Last Sync: 11/11/2014 @ 8:11:47 
disconnection established...!!! 
connection established...!!!Last Sync: 11/11/2014 @ 8:11:54 
disconnection established...!!! 
connection established...!!!Last Sync: 11/11/2014 @ 8:12:14 
disconnection established...!!! 
connection established...!!!Last Sync: 11/11/2014 @ 8:12:35 
disconnection established...!!! 

ответ

0

Я думаю, что есть некоторые проблемы с вашим кодом на стороне клиента. Пожалуйста, взгляните на следующий код. Это работает. стороне сервера код-'chat.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'); 
}); 

И на стороне клиента код идет here.'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>

+0

Но вы не использовали сердцебиения тайм-аут и интервал сердцебиения ... это происходит, когда вы устанавливаете оба этих значения. перезагрузите, вы получите выше следующего результата. Основная проблема заключается в том, что я просто хочу установить тайм-аут и интервал сердцебиения. Я следовал условию, что значение тайм-аута должно быть больше интервала сердцебиения. Как я могу использовать оба эти метода и получить правильный результат. –

Смежные вопросы