1.1 KiB
1.1 KiB
Web Socket Protocol Draft
Requirements:
- fast when necessary (not even msgpack overhead)
- sending live data updates
- easy otherwise, based on msgpack
- sending existing measured data
Message Format
- 1byte "opcode" (if lower than threshold, probably 8, pure binary msg, otherwise msgpack)
- msgpack data, or custom binary data
class WebsocketConnection
{
sendMessage(opcode, optionalData); // optional data is packed via msgpck
registerMessageReceive(func, singleShot);
request(opcode, data, onReplyFunc); // with futures, async
// register a single shot receive that calls the "onReplyFunc", or promise
};
class WebsocketInterface
{
public:
virtual bool onMessageReceived(websockets::WebsocketsClient &client)
{
}
protected:
WebsocketServer * server_;
}
class SessionWebsocketInterface
{
public:
}
class WebsocketServer
{
void sendToAll(char * data, size_t size);
void registerInterface(WebsocketInterface *);
};
can this be done with static polymorphism as well? does std::tuple and std::apply work?! -> test