将数据从ASP.NET发送到android

时间:2015-01-16 17:02:56

标签: android asp.net web-services sockets

我正在创建一个类似viber的应用程序,即android用户可以在他们的Android设备中制作即时消息。我使用ASP.NET(带有JSON响应的ASMX服务)创建了客户端到服务器的Web服务,它就像一个魅力,但另一方面,即服务器到客户端的请求只是有点头疼。当然,我可以创建我的应用程序,以便不需要服务器到cliend请求(在短时间内从客户端向服务器发送虚拟请求),但这样一来,当用户数量增加时,服务器将会过载。我发现了一些有关即时消息的技术,包括GCM和XMPP。我还有什么其他选择?或者让我问一下我最好的选择是什么? 我应该使用套接字吗?如果是这样,我怎么能总是让我的客户IP(考虑到客户是可能使用WiFi或GPRS / 3G / 4G互联网的移动用户)。我正在考虑一个系统,我的客户端每n秒发送一次IP(n可能大约为30),因此服务器总是有一个(几乎)最新的客户端IP列表。 这样做是否可能或甚至合乎逻辑?

2 个答案:

答案 0 :(得分:0)

您一定要考虑使用GCM (Google Cloud Messaging for Android)

您需要在服务器中设置一些内容才能使用它通过GCM发送。 它是将数据从服务器发送到Android设备的内置方式,希望这可以帮助

Implementing GCM Server

答案 1 :(得分:0)

总是可以使用旧的长轮询策略,但现在有更好的方法可以做到这一点。这可能是所提到的最快的实现(如果您想要正确实现它并且在服务器/数据库引擎上具有最小负载量,则不是这样)。我已经看到了一些围绕该架构开始的项目,并希望将来能够采用更好的方式......当然,移动的时刻永远不会到来。如果您开始浏览连接到像查尔斯这样的代理的Android手机,您会看到我的意思:)

WebSockets是一个选项,但我没有看到为什么我将它们用于类似Viber的应用程序的原因,这是基于事件的(您收到了一条消息)而不是“实时”(例如,监控一些股票图形运动)。

这里你最好的选择是a Google Cloud Messaging (GCM)!它很容易在你的后端和客户端上实现它,并且它专门针对有问题的连接而构建(在wifi /差3g / 4g /等之间切换)。它有一些非常好的功能,其他方法不提供“开箱即用” - 消息重发(客户端失去连接的常见情况 - GCM它将在以后发送推送通知,当他上线时),自动设备(智能手机,平板电脑等)与其他设备之间的同步。