首页 > 技术文章 > 网络-交互感悟

chenfengyijiu 2021-04-27 23:01 原文

最近项目中有个需求两个设备之间有交互的需求,为此想到了一些模式,作为记录下来。
第一种模式:USER有效
客户端登陆主机之后,主机给客户端分配一个有效的USER,在一定时间内,客户端都需要使用这个USER进行登陆主机,每次客户端都可以使用套接字进行通讯访问,但是必须携带这个USER,表示认证通过。
客户端需要完成的内容:
1、客户端需要每隔一段时间发送心跳,维护这个USER有效
2、客户端只有有消息就可以发送,每次都是需要建立连接,进行三次握手四次挥手。
3、客户端中业务有多个地方进行主机通讯,这个时候不需要担心数据流串通,导致数据异常。因为每次都是使用USER而不是一个FD进行通讯的
主机需要完成的内容:
1、首次登陆需要认证客户端
2、主机需要产生独一无二的USER,避免USER串号
3、主机需要校验USER,保证USER是正确的
4、为了安全,主机需要保存对端的USER和对端的IP,对端的实际IP。三个保持一致才能正常交互。
第二种模式:长连接
客户端登陆主机之后,两者之间就建立了长连接,相互通信都是在这个一个数据流中。这种一般都是半全双工,采用一问一答的方式
客户端需要注意事项:
1、客户端需要维护这个FD
2、客户端有多个业务进行主机通讯,这个时候要保证数据流的正确性,避免一个fd多次被写或者被读,导致数据流异常
注意事项:
1、一般都需要有问有回,双方约定通讯机制。
2、约定双方中有一方进行心跳机制,保证网络正常,避免因为网络异常,资源还没有得到回收

推荐阅读