我是一个用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之间。
我该如何解决这个问题?或者我应该采用一种完全不同的方法?