#4740 Forced delay on heartbeat rather than each clipboard chunk
This commit is contained in:
parent
d14d907ac1
commit
8ab69a22ae
|
@ -33,10 +33,9 @@
|
|||
|
||||
#include <fstream>
|
||||
|
||||
#define SEND_THRESHOLD 0.005f
|
||||
|
||||
using namespace std;
|
||||
|
||||
#define FAKE_HEARTBEAT_THRESHOLD 3
|
||||
#define CHUNK_SIZE 512 * 1024; // 512kb
|
||||
|
||||
bool StreamChunker::s_isChunkingFile = false;
|
||||
|
@ -70,8 +69,8 @@ StreamChunker::sendFile(
|
|||
// send chunk messages with a fixed chunk size
|
||||
size_t sentLength = 0;
|
||||
size_t chunkSize = CHUNK_SIZE;
|
||||
Stopwatch sendStopwatch;
|
||||
sendStopwatch.start();
|
||||
Stopwatch fakeHeartbeatStopwatch;
|
||||
fakeHeartbeatStopwatch.start();
|
||||
file.seekg (0, std::ios::beg);
|
||||
|
||||
while (true) {
|
||||
|
@ -81,8 +80,10 @@ StreamChunker::sendFile(
|
|||
break;
|
||||
}
|
||||
|
||||
if (sendStopwatch.getTime() > SEND_THRESHOLD) {
|
||||
if (fakeHeartbeatStopwatch.getTime() > FAKE_HEARTBEAT_THRESHOLD) {
|
||||
events->addEvent(Event(events->forFile().keepAlive(), eventTarget));
|
||||
fakeHeartbeatStopwatch.reset();
|
||||
}
|
||||
|
||||
// make sure we don't read too much from the mock data.
|
||||
if (sentLength + chunkSize > size) {
|
||||
|
@ -103,9 +104,6 @@ StreamChunker::sendFile(
|
|||
if (sentLength == size) {
|
||||
break;
|
||||
}
|
||||
|
||||
sendStopwatch.reset();
|
||||
}
|
||||
}
|
||||
|
||||
// send last message
|
||||
|
@ -136,12 +134,14 @@ StreamChunker::sendClipboard(
|
|||
// send clipboard chunk with a fixed size
|
||||
size_t sentLength = 0;
|
||||
size_t chunkSize = CHUNK_SIZE;
|
||||
Stopwatch sendStopwatch;
|
||||
sendStopwatch.start();
|
||||
Stopwatch fakeHeartbeatStopwatch;
|
||||
fakeHeartbeatStopwatch.start();
|
||||
|
||||
while (true) {
|
||||
if (sendStopwatch.getTime() > SEND_THRESHOLD) {
|
||||
if (fakeHeartbeatStopwatch.getTime() > FAKE_HEARTBEAT_THRESHOLD) {
|
||||
events->addEvent(Event(events->forFile().keepAlive(), eventTarget));
|
||||
fakeHeartbeatStopwatch.reset();
|
||||
}
|
||||
|
||||
// make sure we don't read too much from the mock data.
|
||||
if (sentLength + chunkSize > size) {
|
||||
|
@ -157,9 +157,6 @@ StreamChunker::sendClipboard(
|
|||
if (sentLength == size) {
|
||||
break;
|
||||
}
|
||||
|
||||
sendStopwatch.reset();
|
||||
}
|
||||
}
|
||||
|
||||
// send last message
|
||||
|
|
Loading…
Reference in New Issue