Socket.io在启动时发送了大量请求

时间:2016-02-25 15:28:15

标签: node.js socket.io request ejs

我正在编写Node.js应用程序,因为我需要将数据流式传输到浏览器,所以我包含了Socket.io库。它是否正确,一旦启动,我在控制台中得到所有这些请求?

GET http://192.168.8.115:1337/socket.io/?EIO=3&transport=polling&t=LCP0qc- 200 OK 1ms   
GET http://192.168.8.115:1337/socket.io/?EIO=3&transport=polling&t=LCP0qd4 200 OK 5ms   
POST http://192.168.8.115:1337/socket.io/?EIO=3&transport=polling&t=LCP0qdf&sid=kRNcDo8LvANa39H3AAAC 200 OK 1ms 
GET http://192.168.8.115:1337/socket.io/?EIO=3&transport=polling&t=LCP0qdn&sid=kRNcDo8LvANa39H3AAAC 200 OK 1ms  
POST http://192.168.8.115:1337/socket.io/?EIO=3&transport=polling&t=LCP0qe4&sid=EYk1kgtAKZ-ju0IqAAAD 200 OK 1ms
GET http://192.168.8.115:1337/socket.io/?EIO=3&transport=polling&t=LCP0qeA&sid=EYk1kgtAKZ-ju0IqAAAD 200 OK 1ms  
GET http://192.168.8.115:1337/socket.io/?EIO=3&transport=polling&t=LCP0qeo&sid=kRNcDo8LvANa39H3AAAC 200 OK 130ms    
GET http://192.168.8.115:1337/socket.io/?EIO=3&transport=polling&t=LCP0qfD&sid=EYk1kgtAKZ-ju0IqAAAD 200 OK 128ms

我通过此代码请求EJS模板:

app.get('/', function(req, res) {
    res.render(__dirname + '/views/index');
});

这就是我开始Socket.io连接的方式:

var socket = io.connect('/'+ip);
socket.on('update', function(data) {
    $('#dateTime').html(data.time);
});

对我来说这看起来很奇怪,我在谷歌上找不到关于这个搜索的任何文档!

1 个答案:

答案 0 :(得分:0)

这是正确的预期行为。

第一个包是一个连接包。

看起来您正在同时从两个不同的浏览器(或两个不同的标签)进行连接。 t=参数是一个唯一的数字来打破任何缓存。

每个sid的第一个POST是连接。以下GET只是轮询,而POSTpong数据包,表示连接仍然​​有效。

如果将套接字升级到websockets,它将一直停止访问网络服务器。