[Tech]IM项目中的消息交互设计
在IM系统的消息交互设计中,我们支持了文件,视频,图片,语音等消息类型,并支持已发送消息的回复和跳转以及消息的点赞和点踩,用户可以艾特群成员,并弹出消息提醒对应的群成员有艾特消息。用户还可以在时间线展示的情况下查看历史消息列表,以及对消息进行撤回操作。
在IM系统的消息交互设计中,我们支持了文件,视频,图片,语音等消息类型,并支持已发送消息的回复和跳转以及消息的点赞和点踩,用户可以艾特群成员,并弹出消息提醒对应的群成员有艾特消息。用户还可以在时间线展示的情况下查看历史消息列表,以及对消息进行撤回操作。
在实时通讯系统中,消息的发送和接收是最重要的部分,要实现高效稳定的消息系统,需要考虑多个关键点,比如保证消息的时序性、消息可靠ACK、避免消息重复、热点群扩散风暴等。
在我们实际的IM项目中,我们使用了websocket进行连接管理,并根据连接的特性指定了前后端消息的类型以及根据请求内容获取用户真实ip,并使用心跳包进行用户下线感知,对用户请求路由处理等。