MOOON-server提供了一个通用的TCP框架,并对包的解析抽象出了IPacketHandler接口,这个接口提供了无限制的宽容度,支持任何协议,但是增加了使用复杂,
MOOONserver新消息处理接口
。由于大多数协议,都会定义一个消息包大小字段,基于这个前提,MOOON-server引用了新的接口IMessageObserver,它能够解析任何包头::monMessageHeader的消息,在一个包解析完整后(包括包头和包体都已经接收完成),通过回调on_message()将消息传递给使用者,这样就大大简化了MOOON-server的编程。
下面是接口的定义:
class CALLBACK_INTERFACE IMessageObserver{public:virtual ~IMessageObserver() {}virtual bool on_message(const::monMessageHeader& request_header, const char* request_body, char** response_buffer, size_t* response_sizer) = 0;virtual void on_connection_closed(){}virtual bool on_connection_timeout(){return true;}virtual util::handle_result_t on_responsepleted(){//return util::handle_close; // 短连接时return util::handle_continue; // 长连接时}};