|
|
| LogWebSocket (Poco::Net::HTTPServerRequest *req, Poco::Net::HTTPServerResponse *resp, std::shared_ptr< Log > &log) |
|
bool | isActive () |
|
void | set (ev::dynamic_loop &loop) |
|
void | send (ev::timer &t, int revents) |
|
void | ping (ev::timer &t, int revents) |
|
void | add (Log *log, const std::string &txt) |
|
void | term () |
|
void | waitCompletion () |
|
void | setHearbeatTime (const double &sec) |
|
void | setSendPeriod (const double &sec) |
|
void | setMaxSendCount (size_t val) |
|
void | setBackpressureTimeout (const double &sec) |
|
void | setPendingNotice (const std::string &msg) |
|
void | setQueueBytesLimit (size_t bytes) |
|
void | setMaxFrameBytes (size_t bytes) |
|
void | setPongTimeout (const double &sec) |
|
void | setMaxLifetime (const double &sec) |
|
|
ev::timer | iosend |
|
double | send_sec = { 0.5 } |
|
size_t | maxsend = { 200 } |
|
ev::timer | ioping |
|
double | ping_sec = { 3.0 } |
|
ev::io | ioread |
|
ev::timer | iopongcheck |
|
double | pongTimeout_sec = { 10.0 } |
|
std::atomic_bool | waitingPong = { false } |
|
std::chrono::steady_clock::time_point | lastPingSent |
|
std::chrono::steady_clock::time_point | sessionStart |
|
double | maxLifetime_sec = { 0 } |
|
std::mutex | finishmut |
|
std::condition_variable | finish |
|
std::atomic_bool | cancelled = { false } |
|
sigc::connection | con |
|
Poco::Net::HTTPServerRequest * | req |
|
Poco::Net::HTTPServerResponse * | resp |
|
std::queue< UTCPCore::Buffer * > | wbuf |
|
std::deque< std::string > | msgQueue |
|
size_t | queuedBytes = { 0 } |
|
size_t | queueBytesLimit = { 2 * 1024 * 1024 } |
|
size_t | maxFrameBytes = { 64 * 1024 } |
|
std::chrono::steady_clock::time_point | lastDiag |
|
size_t | lostByOverflow = { 0 } |
|
size_t | backpressureCount = { 0 } |
|
std::chrono::steady_clock::time_point | backpressureStart |
|
bool | backpressureActive = { false } |
|
double | backpressureTimeout_sec = { 5.0 } |
|
std::string | pendingNotice |
|
std::unique_ptr< Poco::ObjectPool< uniset::UTCPCore::Buffer > > | bufPool |
|
size_t | bufPoolCapacity = { 256 } |
|
size_t | bufPoolPeak = { 2000 } |
|
std::shared_ptr< Log > | log |
класс реализует работу с websocket через eventloop Из-за того, что поступление логов может быть достаточно быстрым чтобы не "завалить" браузер кучей сообщений, сделана посылка не по факту приёма сообщения, а раз в send_sec, не более maxsend сообщений.