选择正确的聊天协议实现

Posted

技术标签:

【中文标题】选择正确的聊天协议实现【英文标题】:Choosing correct Chat Protocol implementation 【发布时间】:2013-02-27 06:26:19 【问题描述】:

我正在尝试在 android 上创建一个基于论坛的群聊应用程序。我需要能够通过聊天绘制和发送语音消息。

我在使用聊天协议时对 IRC 和 XMPP 感到困惑。有人可以在这方面给我建议吗。

我觉得 IRC 更适合我的应用程序,因为它主要用于论坛中的群组交流,但我不确定 IRC 是否支持除了文本消息之外的任何其他内容。

【问题讨论】:

不确定这与 XMPP 中的聊天室有何不同。它还支持各种语音和其他二进制数据传输。 【参考方案1】:

您可以使用编码系统(例如 Base64)以纯文本形式发送任何类型的二进制数据(图像、声音等)。

您必须注意选择的编码字符域不会与您的协议方法冲突来分隔消息。其他常见问题是消息协议允许的大小。也许您需要在协议中实现某种类型的分块消息和一些描述二进制内容的 MIME。

Here你可以找到常见的B2T编码标准列表。

对于“实时”绘制,最简单的解决方案是向客户端发送快照图像,当前图像在抽屉客户端中绘制。如果您在一秒钟内执行 10 次,您将获得每秒 10 帧的绘图动画。为了优化这一点,有一种称为 Delta 编码的技术,有时也称为 Delta 压缩。是一种以顺序数据(在本例中为图像)而不是完整文件之间的差异形式存储或传输数据的方式。因此,在客户端中,您只需要计算两个“框架”之间的差异,而在客户端中您唯一需要做的就是将当前“框架”与差异“合并”以显示下一个“框架”。

【讨论】:

以上是关于选择正确的聊天协议实现的主要内容,如果未能解决你的问题,请参考以下文章

实时聊天:我都有哪些选择? [关闭]

如何在尝试检索选择的表格单元格时正确实现 - (NSIndexPath *)indexPathForSelectedRow

iOS xmpp协议实现聊天之openfire的服务端配置

如何选择合适的语音聊天app开发方式实现语音连麦

Android中类似QQ和微信中聊天消息中包含有电话号码,点击可以选择拨打的功能怎么实现?

Express.js 的 http2 协议的最佳选择