2012-09-24 99 views
3

我有兩個運行gcm客戶端應用程序的android設備。我得到了兩個設備的註冊ID。我也有一個服務器API密鑰。現在,使用一個簡單的PHP代碼使用cUrl或Zend框架,我可以從Web服務器發送消息給我的一個機器人(當然,我也可以播出)。但是,有了這個,有沒有辦法將字符串從一個設備發送到另一個設備?可以使用gcm來發送和接收Android設備之間的消息嗎?

回答

3

引用自己從my book

你也許會使用GCM爲對等網絡的消息,沒有 自己的服務器。實際上,每個Android應用程序都是它自己的服務器,使用與您的Android應用程序內的Web應用程序一起使用的相同JAR可以將消息發送給其他某個 派對。例如,您可以實現聊天系統,而無需專用的聊天服務器 。

這裏的危險是,這需要您的API密鑰嵌入到您的Android應用程序的 中。擁有該API密鑰的任何人都可以完美地向您發送 消息。您可以放置​​在該API密鑰上的IP地址限制爲 不太可能提供幫助,因爲您的合法使用可能來自任何IP地址,而不是僅僅某個單一服務器的 。由於在APK文件中查找魔術字符串並不困難 ,因此將您的API密鑰放入您的APK文件是一種危險的 移動。

因此,你會想要你自己的一些服務器作爲中間人。

+1

所以,我認爲這是「不推薦,儘管可能。」謝謝 – venkatKA

+0

那麼,如果他們能僞造消息呢?他們仍然沒有設備註冊ID。他們可能只是填寫您的消息傳遞配額,而無需聯繫設備。雖然我確信有些「黑客」會在應用程序上執行DOS操作,但他們可能沒有別的辦法。 –

2

你可以做的一件事是通過消息和其他Android設備的註冊ID向您的Web服務器發出POST請求,但這會有點麻煩,因爲您必須找出一種方法從您的Web服務器檢索其他Android設備的註冊ID。

我建議尋找XMPP,因爲這個協議是從頭建立起來的,是一個廣泛的消息協議。我很肯定你會找到很好的XMPP服務器框架來實現你的功能。

+1

我曾嘗試過xmpp。但我覺得這個gcm thingy有點花哨:) – venkatKA

相關問題