Class representing a WebSocket Server.
Example Usage:
#include <iostream>
#include <string>
class WebSocketServerObserver :
public Observer<WebSocketServer>,
public Observer<WebSocketSession>,
public std::enable_shared_from_this<WebSocketServerObserver>
{
public:
void update(WebSocketServer::SPtr serv){
std::cout << "Connected... " << serv->getSession()->getClientIP() << ":" << serv->getSession()->getClientPort() << std::endl;
serv->getSession()->subscribe(this->shared_from_this());
}
void update(WebSocketSession::SPtr sess){
std::cout << "Echoing received message: " << sess->getMessage() << std::endl;
sess->send(sess->getMessage());
}
using SPtr = std::shared_ptr<WebSocketServerObserver>;
using UPtr = std::unique_ptr<WebSocketServerObserver>;
using WPtr = std::weak_ptr<WebSocketServerObserver>;
};
int main()
{
WebSocketServer::SPtr srv = std::make_shared<WebSocketServer>("0.0.0.0", "1204");
WebSocketServerObserver::SPtr obs = std::make_shared<WebSocketServerObserver>();
srv->subscribe(obs);
srv->run();
while(true){};
return EXIT_SUCCESS;
}
Simple Websocket Server implementation.
Namespace for giri's C++ support library.
Definition: Base64.h:47