2011-01-08 11 views
0

私は、全体の画像を見ることを妨げているちょっとした詳細が欠落していると思います。Ajax WebアプリケーションをWebソケットに移行する

私はx時間ごとにajaxリクエストを使用して、クライアントに新しい情報やタスクを更新するWebアプリケーションを持っています。

私はまた、Java計算エンジンであるサーバー上で長時間実行されているプロセスを持っています。私は、このエンジンがクライアントにアップデートを送ることを望みます。

  1. Webアプリケーションをwebsocketを使用して移行する方法が不思議です。おそらくphpwebsocketまたはこれに類するもの。私のサーバーは、特定のクライアントに情報を送信することを「決定」できますか? php-websocketを見ているようです。

  2. マイクバックエンドのロングプロセスでwebsocketサーバーを使用して、特定のクライアントに通知を送信できるかどうか。どうやって?よく私は私のJavaアプリケーションはhttpの代わりにwebsocketを送信することができるクラスを使用することができると言うことができます。

しかし、websocketサーバーがどの情報をどのクライアントに送信するかを知っている方法。私はすべてこれで困惑しています。これを詳細に説明する文書はどれですか? websocketは私のWebアプリケーションのインスタンスを作成することができるようです。アクティブなクライアントソケットの任意の番号を持つことになります

おかげ

+1

fyi-最新のセキュリティ上の問題(Websocketをコーディングする前に読んでおきたいことがあります)。 – goat

答えて

0

あなたのサーバーは、(おそらくユーザからの入力に応じて)に書き込むためにどれを決定します。

phpwebsocketは(まだエッジの周りに非常にラフである)$id$socketUserクラス(これは基礎となるTCPソケットである)、及び$handshakeフィールドを有しています。 Userに関する追加のメタデータ(たとえば、計算識別子)を使用して、そのクラスを拡張することができます。または、計算IDからUserまでの配列マッピングを使用することもできます。

おそらくJava計算nが終了したら、その計算に関連付けられたソケットを検索し、そのソケットに書き込むことができます。

+0

私のJava計算は、ws:// mydomain/mysocketapp?user = xx; msg = "completed"に "POST"することができました。それから、websocketは対応するユーザ/ソケットを見つけ、メッセージを "エコー"してユーザに送ります。 – Bastan

+0

WebSocketは、WebSocket上にHTTPを実装しない限り、接続後にHTTPを使用しません。サーバーとJavaバックエンド間の通信に必ずWebソケットを使用する必要はありません。プロセス間通信の別の形式を使用することができます。 –

+0

私はプロセス間通信のポインタを見て、もっと読むことができますか? – Bastan

関連する問題