2013-07-03 55 views
2

我有一個運行在spring框架下的java服務器。現在我必須開發一個GCM服務來將數據從服務器發送到Android應用程序。是否可以在Java服務器中添加PHP腳本?

我在互聯網上看到一些教程,他們都在php腳本中實現了這個服務。我想知道是否可以在我的java服務器中使用它們。

我知道我可以重寫代碼Java,但我沒有那麼多的時間,它是大學的工作,所以我不想浪費太多的時間改寫了這一切..

所以我'想知道是否可以添加這些PHP腳本,如果是的話,我該怎麼做?

+0

簡答:第 – BlackHatSamurai

回答

3

即使您將Java服務器與一些發送GCM消息的PHP代碼連接,您仍然必須將註冊ID和通知負載傳遞給該代碼。簡單地使用Google提供的gcm-server.jar不是更容易嗎?

使用gcm-server.jar,您需要發送GCM消息的代碼是如此簡單:

Sender sender = new Sender(apiKey); 
Message message = new Message.Builder() 
    .delayWhileIdle(true) 
    .addData("key1", "value1") 
    .addData("key2", "value2") 
    .build(); 
Result result = sender.send(message, registrationId, numOfRetries); 

如果你想處理錯誤響應,你應該檢查結果情況看,如果消息被成功由GCM服務器接收,如果不是,發生了什麼錯誤。

您需要實現的唯一一件事是從您的Android應用程序接受註冊ID並將它們存儲在數據庫中的一些servlet。也許你可以使用現有的PHP代碼(你不需要PHP代碼和Java代碼之間的任何接口)。

+0

Oooww!那就是我想要的!我會測試這段代碼,它似乎很容易!關於從Android應用程序發送ID到服務器,有沒有gsm庫做的任何竅門,還是我必須通過使用Rest服務或類似的東西發送它? –

+0

@FelipeMosso要發送ID,您需要一些servlet或JSP或類似的東西。谷歌圖書館沒有提供這個功能,因爲它不會假設你打算從你的應用發送到你的服務器(你可能決定在註冊ID旁邊發送更多信息),並且它不會對如何發送你打算將數據存儲在你的服務器上。 – Eran

+0

好吧!非常感謝!我要試一試,我也從android sdk獲得了一些示例!非常感謝您給我指導! –

0

你可以從你的Java代碼

你必須將數據來回傳遞某種方式執行外部程序。讀/寫stdin和stdout可能

莫比,這將幫助:Execute external program in java

0

是的,可以。他們擁有PHP,JavaScript甚至用純Java編寫的Python的解釋器。對於PHP,一個這樣的產品是Caucho Quercus

+0

我認爲其他方式rund是不正確的事實說... –

+0

我不知道你剛纔說什麼。 OP詢問您是否可以在Java/Spring Web應用程序中運行PHP,我相信您可以使用包含的鏈接,該鏈接是用Java編寫的PHP解釋器的WAR部署。 – CodeChimp

+0

這是沒有批評,只有一個尖銳的評論關於Java;) –

相關問題