首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >android中的GCM与Socket

android中的GCM与Socket
EN

Stack Overflow用户
提问于 2013-10-02 12:16:46
回答 1查看 5K关注 0票数 17

据我所知,大多数android教程和示例都依赖于使用GCM将数据从服务器发送到android设备;并使用php脚本和post/get方法将数据从设备发送到服务器。

我的一个朋友(一个对android编程一无所知的人)简单地问我,为什么我们不能在java中使用Socket类?在传统的java编程中,您使用套接字(IP地址+端口号)。要实现类似于GCM的功能(单服务器多客户端-使用适当的技术,您可以确保消息不会丢失,就像gcm一样)。

这种传统的套接字方法也可以在android中实现吗?如果是这样,GCM和Sockets的优缺点是什么?在哪些情况下使用套接字是合适的?据我所知,Whatsapp和许多其他应用程序都使用GCM。有没有使用套接字的应用?

附言:我只是一个C.S.学生;如果我的概念有误,很抱歉

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-02 15:46:47

GCM也使用套接字。然而,它们是由系统管理的,因此可以做常规应用程序不能做的事情。一般来说,对于任何类型的“推送”通知,系统都需要有一个长时间的套接字,而“通知”只是在该套接字上接收到的一些数据。在台式机或服务器等始终连接的机器上实现所有这些功能并不太难,但在移动设备上则存在额外的挑战。例如,切换网络(3G<->WiFi),超出范围,保持连接而不使设备一直处于唤醒状态(并在此过程中耗尽电池)。因此,是的,您可以使用服务、套接字和您自己的服务器来实现类似的功能,但这在移动设备上并不是微不足道的。

查看http://mqtt.org/的开源实现。

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19129928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档