5

我正在开发 android 应用程序,用户可以在其中参加某种战斗。在服务器端,我需要接收用户发起战斗的请求,然后使用某种算法为他选择最喜欢的对手。在战斗中,我还需要向竞争对手发送有关对手行动的通知。

所以看来我需要在我的服务器上实现长轮询。我的问题是:

  1. 服务器端。我正在使用 asp.net mvc 服务器。我查看了SignalR框架,它似乎正是我所需要的。然而,仅仅因为我是长轮询的新手,我还没有理解它的内部工作原理。所以我需要解释如何使用这个框架,或者如何以其他方式实现长轮询。

  2. 客户端。据我了解,长轮询请求模型与标准的“请求-响应”模型略有不同,所以我也想知道如何在客户端实现这些请求。

我期待着对我所描述的主题的任何解释。

4

2 回答 2

5

这可能不是您要寻找的答案,但您为什么要进行长轮询。如果您仅在用户参与战斗时进行轮询,则可以对"pull"此类通知进行轮询。这样也可以节省电池寿命。战斗开始时,启动后台服务,每隔一段时间轮询一次服务器(希望 2-3 秒的延迟是可以接受的)。并相应地通知用户。然后在战斗结束时停止服务。 这将更容易实现。 但如果您需要即时通知,您可以使用Google Cloud Messaging Service(它是一种长轮询形式)。要了解有关其工作原理的更多信息,请参阅
2-3 seconds

于 2012-11-02T04:09:06.053 回答
2

我不确定,如果您考虑过 WCF。

看看这个,看看它是否对你有帮助。 http://anthymecaillard.wordpress.com/2012/06/06/wcf-real-time-web-development-with-long-polling/

对于客户端:使用 Jquery,显示进度轮,直到我们的响应从服务器返回

于 2012-10-26T12:12:12.447 回答