我可能會在這裏問一些,但我對社區有信心,所以值得嘗試。我正在製作一款遊戲,並試圖選擇用於在Java移動客戶端和Java服務器後端之間進行通信的連接類型。如何在Java中使用像TCP套接字這樣的Http連接
Java中的套接字編程很簡單 - 關於這個主題有一個lovely tutorial,雙向通信是微不足道的。
問題在於,在移動客戶端(Android)上,無法保證蜂窩網絡能讓您建立TCP連接。這讓我覺得使用HTTP連接是一種好方法。
HTTP連接是基於請求的,但我需要一種方法將通知從服務器推送到客戶端。看起來這個問題的解決方案是使用「長輪詢」,我已經閱讀了一些內容,但還沒有看到我想要實現的一個簡單示例。
再次我可能會問很多,但這似乎是一個相當普遍的問題,是否有一個庫或框架,我可以導入/使用包裝Http連接並提供雙向長期連接(自動重新連接等) 。我讀了一些關於cometD的書,但似乎沒有一個我可以選擇的Java庫。
我需要的溝通不是沉重的,而是不斷變化的雙向數據流,只是偶爾更新方法來保持遊戲進行。
預先感謝通過我的無知篩選,
加文
但是HTTP是在TCP/IP之上實現的,所以如果網絡不允許TCP,我看不出有什麼幫助。現在如果網絡允許連接 到端口80而不是其他端口(更可能的情況,恕我直言),您可能會決定讓您的非HTTP服務器運行在端口80上。您只需通過HTTP網絡正在進行某種深度包檢測以阻止非HTTP協議。 – 2010-03-09 22:35:45
您會驚訝有多少網絡實際進行這種檢查,或插入透明的HTTP代理。 – leeeroy 2010-03-09 22:51:12
我最近也聽說過遠東地區的移動網絡,只需20秒左右即可超時TCP連接! – 2010-03-10 13:39:07