数据在socket.io连接中丢失

时间:2016-08-28 04:59:27

标签: c++ node.js sockets socket.io

我是一个用nodejs编写的非常原始的socket.io服务器。代码如下 -

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

var total = 0;

app.get('/', function(req, res){
   res.send('<h1>Hello world</h1>');
});

io.on('connection', function(socket){
  console.log('a user connected');

  socket.on('ping-android', function (msg) {
    console.log("Msg received from Android = " + msg);
  });

  socket.on('new-frame', function(msg) {
    console.log("frame received = " + msg.toString().length);
    total += msg.toString().length;
  });

  socket.on('disconnect', function(){
    console.log('disconnected = ' + total);
  });
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});

我有一个客户端在用C ++编写的同一台机器上本地运行。我正在使用socket.io-client-cpp

相关代码如下 -

h.socket()->emit("new-frame", std::make_shared<std::string>(buf, 100));

这里唯一的问题是上面的代码是在非常短的时间间隔内调用的,大概是50-100毫秒。服务器和客户端都在本地运行。

当我打印nodejs服务器中收到的字符串长度时,通常介于95-100之间。

我该如何解决这个问题?或者我应该采用一种完全不同的方法?

0 个答案:

没有答案