2014-09-27 72 views
0

在经过大量研究并碰到墙壁几次之后,就该问一些问题了。从Android客户端轮询asp.net MVC服务器

我正在开发一个项目,它将从Web客户端发送消息到服务器,然后服务器应该通知多个客户端有关更新,这应该在几秒钟内完成。

首先,我想到使用GCM通知,但用户然后必须推送通知,以便在客户端上运行一些代码(打开GPS和东西),但我的客户没有时间点击通知当它到达时。所以它必须在没有用户交互的情况下完成。

接下来我想到的是,如果Android客户端可以侦听c#服务器并在服务器发送新消息时运行代码,但是我还没有找到工作的折磨。我一直在不加推动地看着GCM,只是回复并转发消息,但它很难开始工作。插座也是一种选择,但它似乎也很难开始工作,我不确定这些选择是否可行。

所以我想只是让android有一个后台服务轮询我的c#服务器上的数据库或方法。

任何人都可以给我一个什么是正确的选择,也许一个教程的链接,这是一个很好的一步一步的想法的想法。

这可能是很好的,如果我有选择也可以在以后在IOS上使用它。

+0

只是好奇,如果你有权修改公式的服务器端。如果是这样,也许你可以在SignalR中构建实时的双向通信解决方案。 SignalR在Android,iOS,Windows甚至Web应用程序上都受支持。也许值得一瞧。 http://visualstudiomagazine.com/articles/2013/11/01/how-to-use-signalr-in-ios-and-android-apps.aspx – ajawad987 2014-09-27 01:20:21

+0

如果我使用SignalR,我必须使用Xamarin和c#中的代码作为我明白了..难道没有一个更简单,更普通的方法来做到这一点吗? – 2014-09-27 04:53:20

+0

Xamarin不需要使用SignalR。 – ajawad987 2014-09-27 12:06:20

回答

0

如果我理解正确,你正在尝试做的可以通过以下或多种方式一个很容易做到:

1)使用GCM信息与有效载荷!当移动客户端收到通知时,它会获取有效负载并继续执行特定操作。 http://developer.android.com/google/gcm/adv.html - http://developer.android.com/training/cloudsync/gcm.html#react

2)使用SyncAdapter,使您的应用程序中使用的AlarmManager将定期告诉应用程序通过SyncAdapter轮询服务器,并检查是否有新的内容。触发SyncAdapter的另一种方式是发送GCM通知,如第一步。 http://developer.android.com/training/sync-adapters/creating-sync-adapter.html

+0

因此,如果它的有效载荷后台应用程序不会在乎用户是否不推送通知?你确定吗?找不到GCM告诉我这个地方..也“定期告诉应用程序轮询”那不是我所需要的。在几秒内交配..像2-3 – 2014-09-27 04:55:35

+0

如果你需要每2-3秒,那么你应该确保实施一个通知系统! GCM不应该总是在StatusBar中为用户创建一个通知!您可以发送同步消息等!请阅读此链接! http://developer.android.com/training/cloudsync/gcm.html#react – Pavlos 2014-09-27 08:19:30

+0

感谢您的帮助 – 2014-09-27 20:51:51