|
|
| 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 сообщений.