哪种聊天模式更好:在输入时打印消息,还是在服务器接收到消息后打印? [关闭]
Posted
技术标签:
【中文标题】哪种聊天模式更好:在输入时打印消息,还是在服务器接收到消息后打印? [关闭]【英文标题】:Which chat pattern is better: print the message upon input, or after the server receives it? [closed] 【发布时间】:2014-12-24 20:43:15 【问题描述】:基本上,我正在开发一个聊天客户端,比如 IRC。于是,我陷入了两难:当客户端发送消息时,该消息应该立即打印在他的客户端聊天中,还是服务器应该为他重新发送消息,然后再打印?
例如,Facebook、MSN 和 Skype 使用第一种方法,但我正在构建的聊天将是一个真正的“超级书呆子”,所以我不知道我应该使用哪种模式。
请务必注意,消息可能需要一段时间才能被双方发送和接收。例如,一个简单的“Hello”可能会变成一个 100 长的 char 数组(不要问我为什么)。
根据这种情况,哪种模式会更好,为什么?
【问题讨论】:
【参考方案1】:用户点击“发送”按钮后,消息应该出现在他的聊天中,图标为“进行中”,一旦服务器确认收到消息 - 图标应该被删除或更改为“已收到”,以防超时 - 更改图标为“错误”,可以重试发送
这样做可以满足两个要求:
-
界面响应能力(您会立即看到结果)
界面信息性(您了解实际状态和正在发生的事情)
【讨论】:
这也需要持久存储,其中存储未发送的消息(以及发送/接收),以便以后可以重新发送它们:)【参考方案2】:定义“更好”!根据better
的大多数定义,例如感知响应能力、作为一种类型进行纠正的能力等,前者更好。在更好的定义下,例如“你总是能准确地看到你的对手所看到的”,后者更好。
无论如何,大多数在本地回显文本而不等待(可变的、不可预测的)网络延迟向打字用户显示一些反馈是有原因的。
【讨论】:
以上是关于哪种聊天模式更好:在输入时打印消息,还是在服务器接收到消息后打印? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
对于运行在 YARN 上的 spark 应用,哪种部署方式更好——客户端还是集群
我想在 python 中使用 asyncio 在输入时打印一些东西[关闭]