2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
42#ifndef WEB_WEBSOCKET_SUBSPROTOCOL_H
43#define WEB_WEBSOCKET_SUBSPROTOCOL_H
45#include "core/timer/Timer.h"
47namespace core::socket::
stream {
52 template <
typename SubProtocolT,
typename RequestT,
typename ResponseT>
57#ifndef DOXYGEN_SHOULD_SKIP_THIS
67 template <
typename SocketContextUpgradeT>
77 using SocketContextUpgrade = SocketContextUpgradeT;
85 void sendMessage(
const char* message, std::size_t messageLength)
const;
91 void sendMessageEnd(
const char* message, std::size_t messageLength)
const;
93 void sendPing(
const char* reason =
nullptr, std::size_t reasonLength = 0)
const;
94 void sendClose(uint16_t statusCode = 1000,
const char* reason =
nullptr, std::size_t reasonLength = 0);
124 template <
typename SubProtocolT,
typename RequestT,
typename ResponseT>
bool onSignal(int sig) override
void onMessageEnd() override
Echo(web::websocket::SubProtocolContext *socketContextUpgradeBase, const std::string &name)
void onDisconnected() override
void onConnected() override
void onMessageStart(int opCode) override
void onMessageError(uint16_t errnum) override
void onMessageData(const char *chunk, std::size_t chunkLen) override
void sendMessage(const char *message, std::size_t messageLength) const
void sendMessageStart(const std::string &message) const
virtual void onMessageError(uint16_t errnum)=0
void sendMessageEnd(const char *message, std::size_t messageLength) const
core::socket::stream::SocketConnection * getSocketConnection() const
SubProtocol(SubProtocolContext *subProtocolContext, const std::string &name, int pingInterval=60, int maxFlyingPings=3)
void sendPing(const char *reason=nullptr, std::size_t reasonLength=0) const
virtual void onDisconnected()=0
SubProtocol & operator=(SubProtocol &)=delete
SubProtocol(SubProtocol &&)=delete
void sendMessage(const std::string &message) const
SubProtocolContext * subProtocolContext
void sendMessageFrame(const std::string &message) const
const std::string & getName()
void sendMessageStart(const char *message, std::size_t messageLength) const
void sendClose(uint16_t statusCode=1000, const char *reason=nullptr, std::size_t reasonLength=0)
void sendMessageFrame(const char *message, std::size_t messageLength) const
SubProtocol(SubProtocol &)=delete
virtual void onMessageEnd()=0
virtual void onPongReceived()
virtual void onMessageData(const char *chunk, std::size_t chunkLen)=0
virtual void onConnected()=0
virtual void onMessageStart(int opCode)=0
SubProtocol & operator=(SubProtocol &&)=delete
void sendMessageEnd(const std::string &message) const
virtual bool onSignal(int sig)=0
core::timer::Timer pingTimer
friend class web::websocket::SocketContextUpgrade
std::string sigabbrev_np(int sig)