int dslink_ws_send_obj(wslay_event_context_ptr ctx, json_t *obj) { char *data = json_dumps(obj, JSON_PRESERVE_ORDER); if (!data) { return DSLINK_ALLOC_ERR; } dslink_ws_send(ctx, data); free(data); return 0; }
int dslink_ws_send_obj(wslay_event_context_ptr ctx, json_t *obj) { DSLink *link = ctx->user_data; uint32_t msg = dslink_incr_msg(link); json_t *jsonMsg = json_integer(msg); json_object_set(obj, "msg", jsonMsg); char *data = json_dumps(obj, JSON_PRESERVE_ORDER); if (!data) { return DSLINK_ALLOC_ERR; } dslink_ws_send(ctx, data); dslink_free(data); json_object_del(obj, "msg"); json_delete(jsonMsg); return 0; }
static void ping_handler(void *data, EventLoop *loop) { DSLink *link = data; dslink_ws_send(link->_ws, "{}"); dslink_event_loop_schedd(loop, ping_handler, link, 30000); }