2011-09-13 30 views
1

客戶端是否必須是瀏覽器的Web服務器?這是一個很好的移動客戶端體系結構,可以擁有一些非瀏覽器客戶端並從Web服務器獲取數據嗎?與手機客戶端的網絡郵箱

我想在移動客戶端實現基本的瀏覽器。使用web方法和其他通信進行登錄(每隔10秒監視信息)使用web套接字完成。這會工作嗎?

我可以實現沒有JS的網絡套接字嗎?

謝謝

回答

10

您可以在瀏覽器之外實現WebSockets,並且不需要任何JavaScript參與。您可以擁有一個通過WebSockets與服務器通信的Android本地Java應用程序。

WebSockets是一個協議。爲在瀏覽器中運行的JavaScript定義的WebSockets API是不同的。

您可以使用任何可用於HTTP的方法(即基本認證,摘要,cram-md5,基於客戶端證書(TLS)等)在WebSockets握手期間驗證WebSockets連接,因爲WebSockets握手是仍然像其他任何HTTP對話一樣。在之後,只有握手完成,WS不同於HTTP。

請注意,您可能想要在服務器端的東西不是普通的舊Web服務器,而是WebSockets服務器/框架。

是否使用WS連接移動客戶端是「一個好的架構」,有點含糊。我會說:如果您決定讓您的移動客戶端與服務器對話,並且該服務器在您的控制之下,並且您想要利用WS近似實時/雙向的優勢,那麼它可能會很好。比烹飪你自己的低級協議更好。

+0

+1 WebSockets絕對成爲雙向服務器到客戶端通信的標準,客戶端絕對不必是Web瀏覽器/ JavaScript。 – leggetter

+0

截至今日,移動世界中的網絡套接字並不是非常可靠。許多蜂窩運營商完全阻止websocket連接。所以,不要太依賴他們 – user1169629

+1

@ user1169629:是的 - 如果你不使用TLS。當使用運行在TLS上的安全WebSocket(「wss」)時,移動運營商無法進行代理或阻止(因爲他們無法查看通信量),並且只能正常工作。 – oberstet