简介
之前的一篇文章,给出了libuv搭建高并发服务器的源码,这篇文章将讲解通过libuv,实现部标808协议网关。
部标808协议网关,用于监听基于部标808协议的终端连接,并接收终端808协议数据,然后转发给对应的应用服务器。
用途
该808协议网关,主要用途是
1,接收来自终端的tcp连接,并管理这些连接(如终端连接识别、终端断开处理、相同身份的终端新连接踢出旧连接等等);
2,终端数据转发,将接收的来自终端的808数据,转发对应的应用服务器,由应用服务器再做对应的业务处理;
3,应用服务器数据转发,来自应用服务器的808命令,由网关识别该命令所对应的终端,然后将该命令发送给该终端。
另外,也可以扩展支持终端的注册、鉴权、心跳、定位的基础业务,终端直连该网关后即可上线完成注册鉴权,并发送心跳及对应定位信息,维持终端在线。
优点
1,在并发性上,可支持单机几十万终端tcp连接在线
2,基于libuv的网关,更方便的支持linux和windows操作系统的移植
部分逻辑代码
void DealBusiness(struct task* tsk, struct task& new_task)
{
const char *data = (char *)tsk->buffer;
if (data == nullptr) return;
unsigned char verify_code = data[tsk->size-2];
if (!CheckVerifyCode