gpt4 book ai didi

c# - 在我的 android 应用程序中实现即时消息

转载 作者:行者123 更新时间:2023-11-30 02:09:47 25 4
gpt4 key购买 nike

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

6年前关闭。




Improve this question




这里不欢迎我认识的每个人讨论问题,所以我试图使其尽可能程序化。简而言之,我正在寻求更好的方法来做到这一点,或者优化我现有代码的方法。我的应用程序是通过使用 Unity3D 创建的。游戏引擎,但它不是游戏。我只是觉得这个引擎真的很容易使用,因此我正在使用一个名为 OneSignal 的服务网站。 .足够的漫无边际,任何更多,它变得与问题无关。

这是我第一次尝试创建不使用 Sockets 的即时消息应用程序。 .所以我的整体设计充其量是草率的。但是,这是我的设置:

目前我正在使用 HTTProtocol,在其中我使用 PHP 将所有逻辑存储在我的网络服务器上。基本上我正在做的是在 JSON 中返回数据库结果。在 C# 中使用 SimpleJSON 解析的格式然后由应用程序处理以显示新消息等(基于应用程序/服务器上的“已读”状态。)

这就是我眼中的问题所在。虽然我可以在收到新消息时向用户发送推送通知,但我将如何从服务器中提取所有这些消息?我想到的唯一合乎逻辑的方法是每 5-10 秒不断地轮询网络服务器并检查是否有任何新消息。如果有,则将它们添加到相应的消息列表中并应用“未读消息”属性。

那么手机是否应该将所有用户以前的消息存储在内存中?还是我应该每次都从数据库中提取所有消息?第二种选择似乎比简单聊天功能所需的带宽要多得多。但是,似乎存储在设备上的一堆消息会导致设备困惑,并且每次打开消息时从包含消息的平面文件存储中读取会(在我看来)使用相当多的磁盘 I/O。那么消息应该存储在内存中吗?然后你会遇到设备内存不足的情况,因为 androids 使用了很多,除非消息(线程)被删除,否则它永远不会被 GC 收集。

一位 friend 告诉我,我应该通过推送通知传递消息,并在收到消息时在设备上处理它们,但问题是推送通知并不总是被接收到,然后我们最终会得到很多丢失的消息。

如果我们不断地轮询数据库,那么我们将耗尽用户的电池。

我完全不知道在这里做什么,并希望得到一些指导。这是我的第一个 android 应用程序,虽然它非常非常好,但我推迟到最后的功能,因为我认为它会很简单(消息传递)结果证明是最困难的。

如果这是提出此类问题的不正确的地方,请您(附上您的立即否决票)在此所属的评论中发帖。

最佳答案

您可以尝试在您的应用程序中实现 XMPP 客户端,因为 Unity3d 支持 .net/mono,您应该能够找到 suitable library .

推送通知并不真正适用于 IM(至少不是每条消息)

关于c# - 在我的 android 应用程序中实现即时消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30266648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com