2011-09-13 20 views
1

クライアントをWebサーバーのブラウザにする必要がありますか?これはモバイルクライアントがブラウザ以外のクライアントを持ち、ウェブサーバーからデータを取得するための良いアーキテクチャですか?モバイルクライアントのWebソケット

私はモバイルクライアントで基本的なブラウザを実装することを考えています。 Webプロトコルを使用してログインし、残りの通信(10秒ごとの監視情報)はWebソケットを使用して行います。これは使えますか?

JSなしでWebソケットを実装できますか?

おかげ

答えて

10

あなたはブラウザの外、及び関係する任意のJavaScriptをせずにWebSocketをを実装することができます。つまり、WebSocket経由でサーバーと通信するAndroidのネイティブJavaアプリケーションを使用できます。

WebSocketsはプロトコルです。ブラウザで実行されているJavaScript用に定義されたWebSockets APIは、まったく異なるものです。

WebSocketハンドシェイクは、WebSocketハンドシェイクが実行されているため、HTTP(つまり基本認証、ダイジェスト、Cram-md5、クライアント証明書ベース(TLS)など)で使用できる任意の方法を使用して、WebSocketハンドシェイク中にWebSockets接続を認証できます。それでも他のHTTPの会話と同じです。の後にはのみで、WSとHTTPが異なるハンドシェークが完了しています。

サーバー側では、普通の古いWebサーバーではなく、WebSocketsサーバー/フレームワークである可能性が高いことに注意してください。

モバイルクライアントを接続するためにWSを使用するかどうかは、「良いアーキテクチャ」であるかどうか少し曖昧です。私はこう言っています:モバイルクライアントとサーバーとの通信を決定し、そのサーバーがあなたの管理下にあり、ほぼリアルタイム/双方向のようなWSの利点を活用したい場合、それは良いかもしれません。独自の低レベルのプロトコルを調理するよりも優れています。

+0

+1 WebSocketは、双方向サーバーとクライアント間の通信の標準となり、クライアントはWebブラウザ/ JavaScriptである必要はありません。 – leggetter

+0

Webソケットは今日のモバイル業界ではあまり信頼性がありません。多くの携帯通信会社がウェブソケット接続を完全にブロックしています。だから彼らにあまり依存しないでください – user1169629

+1

@ user1169629:はい - TLSを使用しない場合。 TLS経由で実行される安全なWebSocket( "wss")を使用すると、モバイル事業者はプロキシやブロック(トラフィックの内部を見ることができないため)できず、動作します。 – oberstet

関連する問題