SNode.C
Loading...
Searching...
No Matches
apps::websocket::subprotocol::echo::server::Echo Class Reference

#include <Echo.h>

Inheritance diagram for apps::websocket::subprotocol::echo::server::Echo:
Collaboration diagram for apps::websocket::subprotocol::echo::server::Echo:

Public Member Functions

 Echo (web::websocket::SubProtocolContext *socketContextUpgradeBase, const std::string &name)
 
- Public Member Functions inherited from web::websocket::server::SubProtocol
 ~SubProtocol () override
 
void subscribe (const std::string &group)
 
void sendBroadcast (const char *message, std::size_t messageLength, bool excludeSelf=false)
 
void sendBroadcast (const std::string &message, bool excludeSelf=false)
 
void sendBroadcastStart (const char *message, std::size_t messageLength, bool excludeSelf=false)
 
void sendBroadcastStart (const std::string &message, bool excludeSelf=false)
 
void sendBroadcastFrame (const char *message, std::size_t messageLength, bool excludeSelf=false)
 
void sendBroadcastFrame (const std::string &message, bool excludeSelf=false)
 
void sendBroadcastEnd (const char *message, std::size_t messageLength, bool excludeSelf=false)
 
void sendBroadcastEnd (const std::string &message, bool excludeSelf=false)
 
void forEachClient (const std::function< void(const SubProtocol *)> &sendToClient, bool excludeSelf=false)
 
- Public Member Functions inherited from web::websocket::SubProtocol< web::websocket::server::SocketContextUpgrade >
 SubProtocol (SubProtocol &)=delete
 
 SubProtocol (SubProtocol &&)=delete
 
SubProtocoloperator= (SubProtocol &)=delete
 
SubProtocoloperator= (SubProtocol &&)=delete
 
void sendMessage (const char *message, std::size_t messageLength) const
 
void sendMessage (const std::string &message) const
 
void sendMessageStart (const char *message, std::size_t messageLength) const
 
void sendMessageStart (const std::string &message) const
 
void sendMessageFrame (const char *message, std::size_t messageLength) const
 
void sendMessageFrame (const std::string &message) const
 
void sendMessageEnd (const char *message, std::size_t messageLength) const
 
void sendMessageEnd (const std::string &message) const
 
void sendPing (const char *reason=nullptr, std::size_t reasonLength=0) const
 
void sendClose (uint16_t statusCode=1000, const char *reason=nullptr, std::size_t reasonLength=0)
 
const std::string & getName ()
 
core::socket::stream::SocketConnectiongetSocketConnection () const
 

Private Member Functions

void onConnected () override
 
void onMessageStart (int opCode) override
 
void onMessageData (const char *chunk, std::size_t chunkLen) override
 
void onMessageEnd () override
 
void onMessageError (uint16_t errnum) override
 
void onDisconnected () override
 
bool onSignal (int sig) override
 

Private Attributes

std::string data
 

Additional Inherited Members

- Protected Member Functions inherited from web::websocket::server::SubProtocol
 SubProtocol (SubProtocolContext *subProtocolContext, const std::string &name, int pingInterval=0, int maxFlyingPings=3)
 
- Protected Member Functions inherited from web::websocket::SubProtocol< web::websocket::server::SocketContextUpgrade >
 SubProtocol (SubProtocolContext *subProtocolContext, const std::string &name, int pingInterval=60, int maxFlyingPings=3)
 
- Protected Attributes inherited from web::websocket::SubProtocol< web::websocket::server::SocketContextUpgrade >
SubProtocolContextsubProtocolContext
 

Detailed Description

Definition at line 39 of file Echo.h.

Constructor & Destructor Documentation

◆ Echo()

apps::websocket::subprotocol::echo::server::Echo::Echo ( web::websocket::SubProtocolContext * socketContextUpgradeBase,
const std::string & name )

Definition at line 36 of file Echo.cpp.

Member Function Documentation

◆ onConnected()

void apps::websocket::subprotocol::echo::server::Echo::onConnected ( )
overrideprivatevirtual

Implements web::websocket::SubProtocol< web::websocket::server::SocketContextUpgrade >.

Definition at line 40 of file Echo.cpp.

40 {
41 VLOG(1) << "Echo connected";
42
43 sendMessage("Welcome to SimpleChat");
44 sendMessage("=====================");
45 }
void sendMessage(const char *message, std::size_t messageLength) const

◆ onDisconnected()

void apps::websocket::subprotocol::echo::server::Echo::onDisconnected ( )
overrideprivatevirtual

Implements web::websocket::SubProtocol< web::websocket::server::SocketContextUpgrade >.

Definition at line 73 of file Echo.cpp.

73 {
74 VLOG(1) << "Echo disconnected:";
75 }

◆ onMessageData()

void apps::websocket::subprotocol::echo::server::Echo::onMessageData ( const char * chunk,
std::size_t chunkLen )
overrideprivatevirtual

Implements web::websocket::SubProtocol< web::websocket::server::SocketContextUpgrade >.

Definition at line 51 of file Echo.cpp.

51 {
52 data += std::string(chunk, chunkLen);
53
54 VLOG(2) << "Message Fragment: " << std::string(chunk, chunkLen);
55 }

◆ onMessageEnd()

void apps::websocket::subprotocol::echo::server::Echo::onMessageEnd ( )
overrideprivatevirtual

Implements web::websocket::SubProtocol< web::websocket::server::SocketContextUpgrade >.

Definition at line 57 of file Echo.cpp.

57 {
58 VLOG(1) << "Message Data: " << data;
59 /*
60 forEachClient([&data = this->data](SubProtocol* client) {
61 client->sendMessage(data);
62 });
63 */
65
66 data.clear();
67 }
void sendBroadcast(const char *message, std::size_t messageLength, bool excludeSelf=false)

◆ onMessageError()

void apps::websocket::subprotocol::echo::server::Echo::onMessageError ( uint16_t errnum)
overrideprivatevirtual

Implements web::websocket::SubProtocol< web::websocket::server::SocketContextUpgrade >.

Definition at line 69 of file Echo.cpp.

69 {
70 VLOG(1) << "Message error: " << errnum;
71 }

◆ onMessageStart()

void apps::websocket::subprotocol::echo::server::Echo::onMessageStart ( int opCode)
overrideprivatevirtual

Implements web::websocket::SubProtocol< web::websocket::server::SocketContextUpgrade >.

Definition at line 47 of file Echo.cpp.

47 {
48 VLOG(2) << "Message Start - OpCode: " << opCode;
49 }

◆ onSignal()

bool apps::websocket::subprotocol::echo::server::Echo::onSignal ( int sig)
overrideprivatevirtual

Implements web::websocket::SubProtocol< web::websocket::server::SocketContextUpgrade >.

Definition at line 77 of file Echo.cpp.

77 {
78 VLOG(1) << "SubProtocol 'echo' exit due to '" << strsignal(sig) << "' (SIG" << utils::system::sigabbrev_np(sig) << " = " << sig
79 << ")";
80
81 sendClose();
82
83 return false;
84 }
void sendClose(uint16_t statusCode=1000, const char *reason=nullptr, std::size_t reasonLength=0)
std::string sigabbrev_np(int sig)
Definition signal.cpp:37

Member Data Documentation

◆ data

std::string apps::websocket::subprotocol::echo::server::Echo::data
private

Definition at line 52 of file Echo.h.


The documentation for this class was generated from the following files: