我正在开发 Android 应用程序,用户可以在其中进行某种战斗。在服务器端,我需要接收用户开始战斗的请求,然后使用某种算法,为他选择最合适的对手。在战斗中,我还需要向竞争对手发送有关对手行为的通知。
所以看来我需要在我的服务器上实现长轮询。我的问题是:
服务器端。我正在使用 asp.net mvc 服务器。我看了看 SignalR框架,它似乎正是我所需要的。但是,正因为我对long polling是个新手,所以一直没有了解它的内部工作原理。所以我需要解释如何使用这个框架,或者如何以其他方式实现长轮询。
客户端。 据我了解,长轮询请求模型与标准的“请求-响应”模型略有不同,所以我也想知道如何在客户端实现这些请求边。
我期待着对我所描述的主题的任何解释。
最佳答案
这可能不是你要找的答案,但你为什么要进行长轮询。您可以对此类通知进行“拉取”
轮询如果您仅在用户参与战斗时进行轮询。
这样也可以节省电池生命周期。
战斗开始时,启动后台服务,每 2-3 秒
轮询一次服务器(希望 2-3 秒的延迟是可以接受的)。并相应地通知用户。然后在战斗结束后停止服务。
这将更容易实现。
但是如果你需要即时通知,你可以使用Google Cloud Messaging Service (这是一种长轮询的形式)。要了解有关其工作原理的更多信息,请参阅 this
关于android - 了解长轮询 : client (android) and server (asp net),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13079145/