我正在嘗試創建一個聊天應用程序。該通信基於RESTful Web服務(澤西島)。客戶端與發送HTTP請求的服務器進行通信。我的問題是如何在沒有客戶端先發送請求的情況下將消息從服務器發送到客戶端。我讀了關於C2DM通知,我想用這種方式,當客戶端從服務器接收到通知時(客戶端)必須發送一個請求到服務器以接收數據。我也在考慮使用套接字,但我不知道是否可以使用Rest。我的意思是在服務器端,我還可以使用REST代碼使用套接字(套接字在較低級別運行)嗎?我使用套接字的唯一方法是使用套接字創建另一臺服務器(兩臺服務器爲RESTful和套接字),但這是一個很好的解決方案嗎?我也可以把一些服務器代碼放在客戶端和一些客戶端代碼在服務器端。它會是正確和有效的嗎?你怎麼看?哪種解決方案最好?客戶端(android)從服務器接收消息(java)
1
A
回答
1
您描述的場景聽起來對C2DM來說非常理想。如果你建立自己的套接字設置,你將耗盡電池和CPU資源來完成手機已經在做的事情 - 維護一個開放的套接字來接收消息。
C2DM設置起來相對比較簡單,而且根據我的經驗相當可靠。
這是我看到的是最好的教程:
http://www.vogella.de/articles/AndroidCloudToDeviceMessaging/article.html
但你也需要閱讀官方文檔:
http://code.google.com/android/c2dm/
您的服務器端代碼需要向C2DM服務器發送HTTP請求以向設備發送消息。要告訴它在哪裏發送消息,您的服務器需要指定註冊ID(代表您在一個特定設備上運行的應用),因此當您的應用在Android設備上設置時,它會向C2DM註冊,然後需要發送其C2DM註冊ID將被存儲到您的服務器上,準備用於發送消息。
5
C2DM已於2012年6月26日由谷歌正式棄用。我們鼓勵現有的C2DM開發人員遷移到稱爲Google Cloud Messaging for Android(GCM)的新版C2DM。
看看這個鏈接獲取更多信息
相關問題
- 1. C服務器沒有收到Java/Android客戶端消息
- 2. Java多客戶端服務器不接收來自客戶端的消息?
- 3. 消息,從服務器的客戶端
- 4. Java TCP客戶端和C#服務器;客戶端只接收服務器關閉後的消息
- 5. Java TCP客戶端不接收從C#服務器發送的消息
- 6. Java客戶端套接字:無法接收從服務器到客戶端的消息
- 7. 服務器似乎沒有收到客戶端消息ANDROID
- 8. 服務器在客戶端斷開連接後收到消息
- 9. socket.io客戶端不接收來自服務器的消息
- 10. TCP客戶端不接收服務器的消息
- 11. 服務器無法接收來自客戶端的消息
- 12. Android客戶端/ Java服務器通信,無法從服務器接收數據
- 13. nsqjs客戶端,不從go-nsq服務器端立即接收消息
- 14. C#TCP客戶端發送消息,但服務器未接收到該消息
- 15. Java服務器無法發送消息到Android客戶端
- 16. Android客戶端只向java服務器發送一條消息
- 17. 客戶端 - 服務器消息交換 - Java中的套接字
- 18. 未從服務器接收Android套接字客戶端
- 19. 套接字服務器 - 發送消息從客戶端到客戶端
- 20. 爲什麼客戶端無法接收來自服務器的消息(java)
- 21. Java TCP服務器無法接收來自多個客戶端的消息
- 22. 客戶端無法從服務器接收信息
- 23. Android的TCP客戶端。服務器在進程停止後才接收消息
- 24. 從客戶端發送到服務器的Java消息
- 25. 將消息從C++服務器發送到java客戶端
- 26. 從服務器發送消息給客戶端的Java
- 27. Java ActiveMQ:如何發送消息從客戶端到服務器
- 28. Java-udp編程 - 從服務器發送消息到客戶端
- 29. 客戶端服務器消息加密
- 30. 服務器客戶端消息驗證
@奧利:ü可以上傳你已經爲C2DM創建,因爲我不能夠在我的Android應用程序來實現的示範項目。我需要使用PHP服務器。這是非常緊急的。正因爲如此,我不能完成我目前的[email protected]如果你可以給我發郵件,那將是有益的。謝謝你的幫助.... – Sumant