一、需求
作为与语音识别服务端沟通的桥梁,兼顾运行在各大常见操作系统。
1.支持http、websocket等通信协议
2.提供非阻塞调用接口,需要事件驱动模型
3.支持跨平台编译(Android、iOS、windows、linux、macOS)
4.轻量
二、技术方案
1、自己造轮子
优点:代码可控、可保证轻量
缺点:http和websocket自己实现难免挖坑
2、使用开源
优点:选用成熟开源代码,稳定性有保证,减少开发工作量
缺点:开源代码并不是基于自己项目需求,可能造成代码臃肿,万一有坑填坑过程艰难
三、确定方案
基于需求,最终选用基于开源项目cesanta/mongoose进行开发。
mongoose特性:
基于纯c语言开发
跨平台支持:Linux/UNIX, MacOS, QNX, eCos, Windows, Android, iPhone, FreeRTOS (TI CC3200, ESP8266), etc
内建协议:TCP、UDP、SSL/TLS、HTTP client,、HTTP server、WebSocket client、WebSocket server、MQTT client、MQTT broker、CoAP client、CoAP server
基于简单事件接口的单线程、异步、非阻塞内核