簡體   English   中英

什么是僅使用apache,php和mysql實現實時推送消息的最佳方法?

[英]whats the best way to implement real time push messages with apache, php and mysql only?

我正在嘗試為Android實現聊天應用程序(用戶可以在其中交流位於同一位置的人)。 我認為這是面向特定地理位置的Facebook Messenger。 我遇到過諸如重復拉,彗星,波什,websockects,套接字編程,xmpp(這需要具備xmpp功能的服務器,如openfire)等術語來執行此操作。 但是我的資源是固定的,例如apache,php(codeignter)和MySql。 我需要找到一種有效的方法來做到這一點。 伙計們,我需要這個。 請幫我。

謝謝阿比耶

Android上的首選方法是Google Cloud Messaging

Android專用的Google Cloud Messaging(GCM)是一項服務,可讓您將數據從服務器發送到用戶的Android設備。 這可能是一條輕量級消息,告訴您的應用程序有新數據要從服務器中獲取(例如,朋友上傳的電影),也可能是一條消息,其中包含多達4kb的有效載荷數據(因此,像即時消息之類的應用程序可以直接使用該消息)。

GCM服務處理消息排隊和傳遞到目標設備上運行的目標Android應用程序的所有方面。 無論您的消息傳遞需求有多大,GCM都是完全免費的,而且沒有配額。

從本質上講,它是這樣工作的: 您的服務器與Google進行通訊,並且Google實時 (或幾乎只要將設備打開電源並連接到Internet即可) 將消息推送到Android設備。 首次安裝該應用程序時,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),這使您可以根據需要處理消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM