微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在android中创建聊天应用程序的最佳做法是什么

我打算创建一个 Android聊天应用程序.实际上聊天将成为应用程序的一项功能.我想知道有关Android聊天应用程序的最佳实践.我熟悉的两个选项是C2MD,每隔几秒就会对服务器db进行一次自定义轮询.

现在,我知道C2MD本来应该是伟大的,但根据我的理解,它并不可靠.我试图实现它,它似乎没有工作.此外,如果由于某种原因谷歌结束时发生了某些事情(就像他们的服务器已关闭 – 不太可能但可能发生)我无法联系他们,并且他们处于他们的时间框架.

现在,如果我做自己的事情(我发送用户创建的消息的基本方法,然后定期检查服务器以查看是否有任何新消息到达)似乎没问题,除非为了获得良好的用户体验,我的我的服务器轮询必须像5秒左右一样,这就像疯了一样咀嚼电池.这是使用这种方法的主要缺点.

所以,我想知道有一个更好的方法,我不知道.请任何帮助,架构结构,任何有用的东西.

解决方法

你应该看一下使用XMPP.你可以在Android XMPP上搜索StackOverflow,你最终可能会推荐使用某些Smack(一个XMPP客户端库)的变种 here.

更新以发表评论

首先,XMPP是一种协议,而不是客户端或服务器.使用它的一个好处是可以广泛使用XMPP客户端和服务器实现. Wikipedia article解决了大部分问题.

关于你对gtalk的评论

The architecture of the XMPP network is similar to email; anyone can run their own XMPP server and there is no central master server.

关于民意调查:

XMPP Could use HTTP in two ways: polling[21] and binding.[22] The polling method,Now deprecated,essentially implies messages stored on a server-side database are being fetched (and posted) regularly by an XMPP client by way of HTTP ‘GET’ and ‘POST’ requests. With HTTP binding,the client uses longer-lived HTTP connections to receive messages as soon as they are sent. This push model of notification is more efficient than polling,where many of the polls return no new data.

它也可以使用WebSockets.

关于.NET集成(如果你需要它…如果你不需要,你可以运行自己的XMPP服务器),你可以只搜索StackOverflow for XMPP和.NET,你可以得到一些关于.NET服务器的问题/想法与XMPP服务器集成,如此问题:Opensource .Net Jabber/XMPP server?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐