int SrsKafkaProducer::on_client(int key, SrsListenerType type, string ip) { int ret = ERROR_SUCCESS; if (!enabled) { return ret; } SrsJsonObject* obj = SrsJsonAny::object(); obj->set("msg", SrsJsonAny::str("accept")); obj->set("type", SrsJsonAny::integer(type)); obj->set("ip", SrsJsonAny::str(ip.c_str())); return worker->execute(new SrsKafkaMessage(this, key, obj)); }
int SrsKafkaProducer::on_close(int key) { int ret = ERROR_SUCCESS; if (!enabled) { return ret; } SrsJsonObject* obj = SrsJsonAny::object(); obj->set("msg", SrsJsonAny::str("close")); return worker->execute(new SrsKafkaMessage(this, key, obj)); }
SrsJsonAny* srs_json_parse_tree_nx_json(const nx_json* node) { if (!node) { return NULL; } switch (node->type) { case NX_JSON_NULL: return SrsJsonAny::null(); case NX_JSON_STRING: return SrsJsonAny::str(node->text_value); case NX_JSON_INTEGER: return SrsJsonAny::ingeter(node->int_value); case NX_JSON_DOUBLE: return SrsJsonAny::number(node->dbl_value); case NX_JSON_BOOL: return SrsJsonAny::boolean(node->int_value != 0); case NX_JSON_OBJECT: { SrsJsonObject* obj = SrsJsonAny::object(); for (nx_json* p = node->child; p != NULL; p = p->next) { SrsJsonAny* value = srs_json_parse_tree_nx_json(p); if (value) { obj->set(p->key, value); } } return obj; } case NX_JSON_ARRAY: { SrsJsonArray* arr = SrsJsonAny::array(); for (nx_json* p = node->child; p != NULL; p = p->next) { SrsJsonAny* value = srs_json_parse_tree_nx_json(p); if (value) { arr->add(value); } } return arr; } } return NULL; }