了解长轮询:客户端(android)和服务器(asp net)

时间:2012-10-26 00:13:18

标签: android asp.net-mvc long-polling

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

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

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

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

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

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

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

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