如图所示:
最近小弟遇到一个问题,A服务端和B服务端对方要求双方保持异步长连接,B服务端跟客户端(A,B,C....N)连接是短连接,打个比方,A,B,C三个客户端同时连接向B服务器发起请求,然后B服务器处理完逻辑后向A服务器发起请求,A服务器处理完逻辑返回数据给B服务器,我想问B服务器收到里A服务器发送回来的数据,由于是异步长连接,没有谁先连接B服务端就先返回数据,那要怎么样判断数据是给A客户端,还是B客户端?
我想到的是思路是定义一个类,保存客户端连接的socket文件描述符、发送报文和接收报文都有的一个字段作为唯一标识,发送报文缓存,接收报文缓存,当A服务端返回报文了,解析报文,查找唯一标识,然后根据唯一标志找到所在的socket文件描述符,然后B服务器返回报文给客户端(具体代码还在实现当中,不知道行不行)
想问下大神们有没有好的思路或者框架,用的是C/C++开发。