Add app.publish

This commit is contained in:
Alex Hultman
2019-10-17 02:09:48 +02:00
parent de688869d6
commit 49f460ef20
3 changed files with 19 additions and 7 deletions
+10
View File
@@ -72,6 +72,16 @@ struct WebSocketContextData {
topicTree.drain();
});
}
/* Helper for topictree publish, common path from app and ws */
void publish(std::string_view topic, std::string_view message, OpCode opCode, bool compress) {
/* We frame the message right here and only pass raw bytes to the pub/subber */
char *dst = (char *) malloc(protocol::messageFrameSize(message.size()));
size_t dst_length = protocol::formatMessage<true>(dst, message.data(), message.length(), opCode, message.length(), false);
topicTree.publish(topic, std::string_view(dst, dst_length));
::free(dst);
}
};
}