项目描述
翻译我们有一个正在运行的网络应用程序,现在需要将完整的实时消息传递集成到其中。我们谈论的是用户之间的聊天,而不是支持小部件弹出窗口或 AI 机器人:用户与另一个用户打开对话并交换消息,这些消息会即时到达而无需页面重新加载。我们需要一对一的私人对话和多个参与者看到共同线程的群组聊天,房间组成,并跟随出现的对话。这是我们自己平台账户之间的通信功能,因此它必须像熟悉的消息应用程序一样顺畅和可靠。
从技术上讲,我们期望使用 WebSocket 传输进行实时交付,并提供合理的回退选项以及在连接丢失时的自动重连。消息必须保存在数据库中,以便在重新打开对话时正确加载聊天历史,并且即使在不稳定的网络上,交付也应有序且去重。我们需要输入指示器、每条消息的“已送达”和“已读”状态、每个聊天的未读计数器和在线状态(在线,最后一次查看)。附件很重要:用户应该能够发送带有预览和安全大小限制的图像和文档。当接收者离线或标签页关闭时,推送通知会提醒他们有新消息。后端应依赖于我们当前的用户账户和访问权限,而不是引入单独的身份验证系统。
我们认为安全性和防止滥用是任务的一部分:与活动会话绑定的身份验证套接字连接、权限检查(用户仅阅读他们参与的线程)、显示消息时的 XSS 输入清理,以及针对垃圾邮件的基本速率限制。我们期望在我们当前的技术栈中提供干净的文档代码、简要的集成说明和主要场景的测试。
— 私人和群组聊天与参与者管理
— WebSocket 交付与重连和离线回退
— 输入指示器、交付/已读状态、未读计数器、在线状态
— 带有预览和大小限制的图像和文档附件
— 离线接收者的推送通知
— 历史、排序、去重和消息持久性
— 会话绑定的套接字、每线程权限检查、XSS 保护、速率限制
从技术上讲,我们期望使用 WebSocket 传输进行实时交付,并提供合理的回退选项以及在连接丢失时的自动重连。消息必须保存在数据库中,以便在重新打开对话时正确加载聊天历史,并且即使在不稳定的网络上,交付也应有序且去重。我们需要输入指示器、每条消息的“已送达”和“已读”状态、每个聊天的未读计数器和在线状态(在线,最后一次查看)。附件很重要:用户应该能够发送带有预览和安全大小限制的图像和文档。当接收者离线或标签页关闭时,推送通知会提醒他们有新消息。后端应依赖于我们当前的用户账户和访问权限,而不是引入单独的身份验证系统。
我们认为安全性和防止滥用是任务的一部分:与活动会话绑定的身份验证套接字连接、权限检查(用户仅阅读他们参与的线程)、显示消息时的 XSS 输入清理,以及针对垃圾邮件的基本速率限制。我们期望在我们当前的技术栈中提供干净的文档代码、简要的集成说明和主要场景的测试。
— 私人和群组聊天与参与者管理
— WebSocket 交付与重连和离线回退
— 输入指示器、交付/已读状态、未读计数器、在线状态
— 带有预览和大小限制的图像和文档附件
— 离线接收者的推送通知
— 历史、排序、去重和消息持久性
— 会话绑定的套接字、每线程权限检查、XSS 保护、速率限制
网页编程 现金, 银行转账