mirror of https://github.com/SeanOMik/libki.git
34 lines
641 B
C++
34 lines
641 B
C++
#pragma once
|
|
#include "Session.h"
|
|
|
|
#define KI_CLIENT_HEARTBEAT 10
|
|
|
|
namespace ki
|
|
{
|
|
namespace protocol
|
|
{
|
|
namespace net
|
|
{
|
|
/**
|
|
* Implements server-sided session logic.
|
|
*/
|
|
class ServerSession : public virtual Session
|
|
{
|
|
public:
|
|
explicit ServerSession(uint16_t id);
|
|
virtual ~ServerSession() = default;
|
|
|
|
void send_keep_alive(uint32_t milliseconds_since_startup);
|
|
bool is_alive() const override;
|
|
protected:
|
|
void on_connected();
|
|
virtual void on_established() {}
|
|
void on_control_message(const PacketHeader& header) override;
|
|
private:
|
|
void on_session_accept();
|
|
void on_keep_alive();
|
|
void on_keep_alive_response();
|
|
};
|
|
}
|
|
}
|
|
} |