UniSet  2.24.2
Классы | Открытые члены | Открытые статические члены | Открытые атрибуты | Защищенные члены | Защищенные данные | Статические защищенные данные | Полный список членов класса
Класс uniset::UWebSocketGate::UWebSocket
Граф наследования:uniset::UWebSocketGate::UWebSocket:
Inheritance graph
[см. легенду]
Граф связей класса uniset::UWebSocketGate::UWebSocket:
Collaboration graph
[см. легенду]

Классы

struct  sinfo
 

Открытые члены

 UWebSocket (Poco::Net::HTTPServerRequest *req, Poco::Net::HTTPServerResponse *resp)
 
std::string getInfo () const noexcept
 
bool isActive ()
 
void set (ev::dynamic_loop &loop, std::shared_ptr< ev::async > a)
 
void send (ev::timer &t, int revents)
 
void ping (ev::timer &t, int revents)
 
void read (ev::io &io, int revents)
 
void ask (uniset::ObjectId id)
 
void del (uniset::ObjectId id)
 
void get (uniset::ObjectId id)
 
void set (uniset::ObjectId id, long value)
 
void sensorInfo (const uniset::SensorMessage *sm)
 
void doCommand (const std::shared_ptr< SMInterface > &ui)
 
void term ()
 
void waitCompletion ()
 
void setHearbeatTime (const double &sec)
 
void setSendPeriod (const double &sec)
 
void setMaxSendCount (size_t val)
 
void setMaxCmdCount (size_t val)
 

Открытые статические члены

static Poco::JSON::Object::Ptr to_short_json (sinfo *si)
 

Открытые атрибуты

std::shared_ptr< DebugStreammylog
 

Защищенные члены

void write ()
 
void sendResponse (sinfo &si)
 
void sendShortResponse (sinfo &si)
 
void onCommand (const std::string &cmd)
 
void sendError (const std::string &message)
 

Защищенные данные

ev::timer iosend
 
double send_sec = { 0.5 }
 
size_t maxsend = { 5000 }
 
size_t maxcmd = { 200 }
 
const int Kbuf = { 10 }
 
ev::timer ioping
 
double ping_sec = { 3.0 }
 
ev::io iorecv
 
char rbuf [32 *1024]
 
timeout_t recvTimeout = { 200 }
 
std::shared_ptr< ev::async > cmdsignal
 
std::mutex finishmut
 
std::condition_variable finish
 
std::atomic_bool cancelled = { false }
 
std::unordered_map< uniset::ObjectId, sinfosmap
 
std::queue< sinfoqcmd
 
Poco::Net::HTTPServerRequest * req
 
Poco::Net::HTTPServerResponse * resp
 
std::queue< Poco::JSON::Object::Ptr > jbuf
 
std::queue< uniset::UTCPCore::Buffer * > wbuf
 
size_t maxsize
 

Статические защищенные данные

static const std::string ping_str = "."
 

Подробное описание

класс реализует работу с websocket через eventloop Из-за того, что поступление логов может быть достаточно быстрым чтобы не "завалить" браузер кучей сообщений, сделана посылка не по факту приёма сообщения, а раз в send_sec, не более maxsend сообщений.

Данные класса

◆ recvTimeout

timeout_t uniset::UWebSocketGate::UWebSocket::recvTimeout = { 200 }
protected