2024-11-14 stan
svr_on_recv_pkg 学习笔记svr_on_recv_pkg 是 matchengine 的核心请求处理函数,负责处理所有RPC请求。它在服务器初始化时被注册为回调函数,当网络层接收到完整的RPC请求包时会被触发调用。
在服务器初始化时注册回调:
rpc_svr_type type;
memset(&type, 0, sizeof(type));
type.on_recv_pkg = svr_on_recv_pkg;
type.on_new_connection = svr_on_new_connection;
type.on_connection_close = svr_on_connection_close;
根据pkg->command分发到不同的处理函数:
decode_error:
if (params) {
json_decref(params);
}
sds hex = hexdump(pkg->body, pkg->body_size);
log_error("connection: %s, cmd: %u decode params fail, params data: \\\\n%s", \\\\
nw_sock_human_addr(&ses->peer_addr), pkg->command, hex);
sdsfree(hex);
rpc_svr_close_clt(svr, ses);
return;