开源代码走读--unimrcp
该博客以unimrcp的recorder实现为例进行分析
1. server端
1.1 信令处理
MRCP信令处理流程(以RECORDER-REQUEST信令处理流程为例),由于unimrcp本身是一个基于task的异步架构信令处理模型。他对请求的处理从宏观上可以分为两部分:task入队和task出队。出队后是实际的请求处理流程。因此函数调用栈也分为如下两部分:
(1) task入队
底层基于poll机制实现文件描述符的监听。在任务入队时会添加对应type和sub_type以对task进行标记。
apt_task_run->
apt_poller_task_run(此处实现event_loop)->
mrcp_server_poller_signal_process(task->signal_handler)->
mrcp_server_message_handler->
mrcp_