36 lines
		
	
	
		
			804 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			804 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef HV_WEBSOCKET_PARSER_H_
 | 
						|
#define HV_WEBSOCKET_PARSER_H_
 | 
						|
 | 
						|
#include "hexport.h"
 | 
						|
 | 
						|
#include <string>
 | 
						|
#include <memory>
 | 
						|
#include <functional>
 | 
						|
 | 
						|
enum websocket_parser_state {
 | 
						|
    WS_FRAME_BEGIN,
 | 
						|
    WS_FRAME_HEADER,
 | 
						|
    WS_FRAME_BODY,
 | 
						|
    WS_FRAME_END,
 | 
						|
    WS_FRAME_FIN,
 | 
						|
};
 | 
						|
 | 
						|
struct websocket_parser;
 | 
						|
class HV_EXPORT WebSocketParser {
 | 
						|
public:
 | 
						|
    websocket_parser*                   parser;
 | 
						|
    websocket_parser_state              state;
 | 
						|
    int                                 opcode;
 | 
						|
    std::string                         message;
 | 
						|
    std::function<void(int opcode, const std::string& msg)> onMessage;
 | 
						|
 | 
						|
    WebSocketParser();
 | 
						|
    ~WebSocketParser();
 | 
						|
 | 
						|
    int FeedRecvData(const char* data, size_t len);
 | 
						|
};
 | 
						|
 | 
						|
typedef std::shared_ptr<WebSocketParser> WebSocketParserPtr;
 | 
						|
 | 
						|
#endif // HV_WEBSOCKET_PARSER_H_
 |