IM总结

Wesley13
• 阅读 566

发送消息UDP打洞,登录的时候HTTP。

登录成功后,会有一个TCP连接来保持在线状态。这个TCP连接的远程端口一般是80,采用UDP方式登录的时候,端口是8000。

如果采用UDP协议,通过服务器中转方式。

UDP协议是不可靠协议,它只管发送,不管对方是否收到的。

如果client使用UDP协议发送消息后,服务器收到该包,需要使用UDP协议发回一个应答包,如此来保证消息可以无遗漏传输。

注册模块:6位数字ID,用户登录的唯一凭证。

P2P对等通信处理:NAT穿透技术。

通信协议的设计:消息传递、文件传输请求、状态更改请求、状态信息推送,登入登出、系统通知、协议类型:二进制协议、基于xml。

IM对数据库请求的压力很大,用户信息都需要在服务端cache,实现在线期间的信息持久化,需要设计好cache的管理方式。

多点登录

长连接的维持如何处理

内存池:用户消息结构,连接信息结构的生成、销毁、频繁内存请求。

点赞
收藏
评论区
推荐文章
捉虫大师 捉虫大师
3年前
聊聊dubbo协议
协议协议通俗易懂地解释就是通信双方需要遵循的约定。我们了解的常见的网络传输协议有tcp、udp、http等。再到我们常用的基础组件,一般来说client端与server端也有相应的协议,如redis、mysql、zookeeper等都是各自约定的私有协议,同样今天标题中的dubbo协议也是一种私有协议,他们都是应用层协议,基于tcp或udp设计。
Wesley13 Wesley13
2年前
Udp简单的服务器与客户端07
UDP协议:UDP协议传输数据是不可靠的,在java中,java.util.DatagramSocket负责接收和发送UDP数据报,java.util.DatagramPacket表示UDP数据表。每个DatagramSocket与一个本底地址绑定,每个DatagramSocket可以把UDP数据报发送给任意一个远程DatagramSocket,
Wesley13 Wesley13
2年前
TCP、UDP和HTTP关系
先来一个讲TCP、UDP和HTTP关系的http:是用于www浏览的一个协议。tcp:是机器之间建立连接用的到的一个协议。1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有FTP、HTT
Wesley13 Wesley13
2年前
UDP协议报文格式
今天让我们来认识一下UDP协议的报文格式UDP协议和TCP协议同位于传输层,介于网络层(IP)和应用层之间:UDP数据部分为应用层报文,而UDP报文在IP中承载。如下图:!(https://oscimg.oschina.net/oscnet/74e201602c3a16bf23339e6347610af1f67.png)UDP报文格式
Wesley13 Wesley13
2年前
QUIC协议初探
1、QUIC介绍(1)QUIC(QuickUDPInternetConnections)协议是一种全新的基于UDP的web开发协议。可以用一个公式大致概括:TCPTLSHTTP2UDPQUICHTTP2’sAPI从公式可看出:QUIC协议虽然是基于UDP,但它不但具有TCP的可靠
Wesley13 Wesley13
2年前
TCP UDP有什么区别
前言计算机分层中的传输层,主要是负责计算机之间的数据传输,TCP和UDP都属于传输层协议。在实际开发过程中,需要根据实际需求的来选择适当的传输协议。在这里我们简单总结下TCP、UDP的特点和区别以及实际开发中如何选择。TCP和UDP的定义TCP是面向有连接,可靠的流协议。保证两端通讯主机之间
Wesley13 Wesley13
2年前
MQTT,CoAP,,LWM2M,UDP,TCP各自特点,NB
UDP用户数据报协议(UDP,UserDatagramProtocol)传输层协议1.是无连接的,即发送数据之前不需要建立连接。2.尽最大努力交付,即不保证可靠交付3.传输效率高,适用于对高速传输和实时性有较高的通信或广播通信。4.支持一对一,一对多,多对一和多对多的交互通信。TCP传输控制协议(TCP,Transmis
Wesley13 Wesley13
2年前
DHCP报文及工作流程
DHCP定义    DHCP,DynamicHostConfigurationProcotol动态主机配置协议。是应用层协议,能够让设置自动获取IP地址以及其他重要网络资源。    DHCP使用UDP协议工作,DHCP有3个端口,其中UDP67和UDP68为正常的DHCP端口服务端口,分别作为DHCPServer和DHCPClien
Wesley13 Wesley13
2年前
Java网络编程——12.UDP
前面几章讨论了在TCP传输层协议之上运行的网络应用程序,TCP是为数据的可靠传输而设计的。用户数据报协议(UserDatagramProtocal,UDP)是在IP之上发送数据的另一种传输层协议,速度很快,但不可靠。当发送UDP数据时,无法知道数据是否会到达,也不知道数据的各个部分是否会以发送时的顺序到达。1、UDP协议类似F
API 小达人 API 小达人
6个月前
如何在 Eolink Apikit 中发起 TCP/UDP 文档测试
TCP/UDP是两种常用的网络传输协议。TCP协议提供可靠的连接,而UDP协议提供不可靠的连接。