SendCustomMsg are passed through to this callback.
rtc_set_custom_msg_callback
action, sid, uid, channel, and is_private are all strongly typed fields you can use directly.
content can be any JSON value (object / array / scalar). The C interface always serializes it into the content_json string and passes it through; parse it yourself with a library such as cJSON or jansson.
Example
Memory and threading
When
content is empty or serialization fails, content_json is NULL. Always check for NULL before parsing.