Mvvmcross - 检索更新的最佳方式

时间:2014-02-28 01:30:38

标签: mvvmcross

我不是特别关注任何代码,但我想知道构建函数的最有效方法是什么,该函数将不断检查诸如消息等内容的更新。有一个聊天对话窗口,我想要Facebook等实时更新。

目前我已经通过在我的核心代码中放置一个while循环来实现它,该代码检查视图当前是否可见每5秒运行一次任务以获取新消息。这有效,但我不相信它是最有效的方法,我需要考虑电池寿命。 *注意当视图消失时我会改变可见性,例如在iOS上我做

public override ViewDidDissapper {
 Model.SetVisible(false)
}

是否有人在跨平台应用上实施某种轮询?

1 个答案:

答案 0 :(得分:0)

这里有许多不同的可能解决方案 - 您更喜欢哪种解决方案在很大程度上取决于您在延迟,可靠性,效率等方面的要求 - 这取决于您可以更改服务器端的数量。

如果您的服务器被修复为普通的http服务器,那么频繁轮询可能是您的最佳路由,但您可以选择在您认为不太可能更新时偶尔修改5秒。

此后的一步是您可以尝试在服务器内长时间轮询http请求。

除此之外的另一个步骤是使用Socket(TCP,UDP或websocket)通信来提供“实时”消息传递。

与这些内容并行,您还可以考虑在应用内和后台使用PUSH通知。

总的来说,这是一个很大的话题 - 我建议阅读@Redth的PushSharp以及微软的SignalR - @hashles有一些关于在Xamarin中使用它的博客文章。此外,AzureMobileServices,UrbanAirship,Buddy,Parse等服务可能会有所帮助