什么是使用apache,php和mysql实现实时推送消息的最佳方式?

guy*_*kes 0 php mysql apache

我正在尝试为Android实现聊天应用程序(用户可以在那里与位于同一位置的人进行通信).我认为它是一个具有Geo特定导向的facebook Messenger.我遇到了像重复拉,彗星,波什,websockects,套接字编程,xmpp(这需要像openfire这样的支持xmpp的服务器)等术语来执行此操作.但我的资源修复如apache,php(codeignter)和MySql.我需要找到有效的方法来做到这一点.伙计们我需要这个.请帮我.

谢谢你,abbiya

qui*_*int 7

Android上的首选方法是Google Cloud Messaging.

Google Cloud Messaging for Android(GCM)是一项服务,可让您将数据从服务器发送到用户的Android设备.这可能是一个轻量级消息,告诉您的应用程序有从服务器获取的新数据(例如,朋友上传的电影),或者它可能是包含高达4kb有效负载数据的消息(因此即时消息等应用程序可以直接使用消息).

GCM服务处理消息排队和传送到目标设备上运行的目标Android应用程序的所有方面.无论您的消息传递需求有多大,并且没有配额,GCM都是完全免费的.

从本质上讲,它的工作原理如下:您的服务器与Google通信,而Google会将消息实时推送到Android设备(或者几乎是这样,只要设备已启动并连接到Internet).首次安装应用程序时,Android设备上会发生注册过程(以及将来重新验证注册的点).在您的Android应用中,您有责任将此注册ID发送到您的服务器,以便将其存储以备将来使用.当您的服务器想要将消息推送到该设备时,它会使用此注册ID.

您的服务器和Google之间的通信协议是基于HTTPS的JSON.您的服务器可以使用任何语言/技术,只要它可以与Google的服务器通信.PHP/MySQL应用程序绝对可以满足服务的基本要求:

在编写使用GCM功能的客户端Android应用程序之前,必须具有满足以下条件的应用程序服务器:

  • 能够与您的客户沟通.
  • 能够触发对GCM服务器的HTTPS请求.
  • 能够处理请求并根据需要重新发送,使用指数退避.
  • 能够存储API密钥和客户端注册ID.

在客户端,Android设备必须运行API版本8(Android 2.2)或更高版本.当然,这也是你的Android应用程序负责处理传入的消息(使用BroadcastReceiver,因为Android系统会在消息到达时向你的接收器发送一个Intent),这允许你按照你想要的方式处理消息.