2015-02-23 78 views
1

我目前正在研究开发一个使用Microsoft Azure作为后端的移动应用程序。到目前为止,我所需要的所有内容几乎都是内置的。Azure移动聊天室

无论如何,我制作的应用程序是一个具有多用户聊天室的消息应用程序。我从来没有做过任何后端编程,现在我必须马上学习所有东西。

我查看了Azure文档,发现Azure Service Bus功能可能是我正在寻找的功能,但我不确定这是否是执行此类服务的最佳方式。

显然我想要一种方式让用户同步和异步接收消息。它们同时在手机上主动使用应用程序,并在后台处于异步状态(当应用程序再次变为活动状态时从队列中加载新消息)。

服务总线有主题我明白允许发布者 - 订阅者类型消息架构,但我相信客户端仍然需要查询主题队列(发送请求)以接收数据。这并不理想,因为我不想仅仅每秒钟都要硬编码一个查询云服务总线的循环来实现真正的实时聊天......这可能会随着用户基数的增长而增加服务器成本。

服务总线也具有继电器据我所知,以允许服务总线与客户端之间的双向通信,以及使得能够建立在主题的发布商订户架构同步消息(继电器相结合,与主题, 对?)。

此外,每个聊天室可以有自己的主题,并且加入聊天室的用户订阅主题。

我想我可以做的是:我可以让应用通过中继连接到服务总线,而用户正在使用该应用(它位于最前面),用户将接收实时聊天。当用户锁定手机或以其他方式将应用程序置于后台时,我可以终止中继连接,并在用户重新加载应用程序时,我可以从队列中下载尚未收到的消息。

我想知道服务总线是否被推荐用于这种消息传递,或者如果我有背后的想法是错误的。你会推荐什么样的服务?我接受其他想法,但我宁愿保持服务器端的东西相当轻。我有很多前端可以学习!

谢谢!

Don

+0

这是一个真正的意见的问题,因为没有正确的答案。在服务总线,网络套接字,轮询,推送通知等之间有很多选择。您应该研究主题和订阅者的局限性,以了解服务总线是否会与您的应用程序一起扩展(然后还有可进一步扩展的Azure事件中心)。所以...很多选择,没有单一的正确答案... – 2015-06-29 13:54:08

回答

0

看看SignalR也是一样。

甚至还有使用Azure的移动服务与SignalR样本聊天应用程序 - 看看here

+0

谢谢你!我也在用NodeChat研究node.js,但是这个与Azure Service Bus相结合的SignalR似乎是一个更“本地”的解决方案。不过,我愿意接受其他选择。 – 2015-02-24 01:56:18