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

Yur*_*yak 5 asp.net-mvc android long-polling

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

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

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

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

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

Ash*_*win 5

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


Nip*_*tha 2

我不确定您是否考虑过WCF。

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

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