当前位置: 首页 > 面试题库 >

Android中的GCM与Socket

沃瑾瑜
2023-03-14
问题内容

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

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

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

PS:我只是CS学生;抱歉,如果我在某个地方输入错误的概念


问题答案:

GCM也使用套接字。但是,它们由系统管理,因此可以执行常规应用程序无法执行的操作。通常,对于任何类型的“推送”通知,系统都需要有一个长期存在的套接字,而“通知”只是该套接字上收到的一些数据。在始终连接的计算机(例如台式机或服务器)上实现所有这些并不是很难,但是在移动设备上还存在其他挑战。例如,交换网络(3G
<->
WiFi)超出范围,保持连接而没有始终保持设备处于唤醒状态(并且在此过程中会耗尽电池)。所以是的,您可以使用service,sockets和您自己的服务器来实现类似的功能,但是在移动设备上这并非易事。

请访问http://mqtt.org/以获取开源实施。



 类似资料:
  • 我正在尝试使用GCM推送通知。我的设备已注册到服务器,并且我还创建了设备注册id。但当我试图从服务器发送消息时,消息不会到达已注册的设备。谁能帮帮我吗? 我的主要activity 软件包COM.ATI.GCM; 导入com.google.android.gcm.gcmRegistratar; 导入Android.os.AsyncTask; 导入Android.os.bundle; 导入androi

  • 我的 Android 应用需要简单的推送通知,以获取有关服务器上新数据外观的通知。Android提供了谷歌云消息(GCM),这似乎很合适。 但是,运行低于Android 4.0.4的设备需要手机上存在Google帐户(根据截至2012年10月1日的Google平台统计数据,目前约占Android手机的75%)。而且,要求用户在不相关的应用程序活动中间设置Google帐户似乎不是一种好的体验。 有没

  • 我为android编写应用程序,它将与GCM通信。我可以得到消息,但我想在屏幕上显示它,并得到错误。 有我的代码,我在行Activity act=(Activity)上下文中有问题; 我得到错误“这个类文件的JAR属于容器'Android dependencies',它不允许修改其条目上的源附件”

  • 当在Xamarin Android上使用谷歌云消息时,应用程序在注册时变得没有响应。下面是我的代码: 如果我运行,它会冻结应用程序并记录: 更奇怪的是,我在它关闭之前成功地获得了注册ID。 如有任何帮助,不胜感激。

  • 我正在开发android GCM,以便我的应用程序向用户发送推送通知。我正在学习这个教程 http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/ 但是在本教程中,它表明我们可以向单个设备发送推送通知。但我想一次向所有用户发送推送通知。