0

CodeIgniter 2.1で開発されたイントラネットベースのCRMアプリケーションがあり、アプリケーションはローカルのApacheサーバーで実行されており、約20のクライアントがLAN経由でアクセスしています。これは、コールセンターアプリケーション(別のサーバーで実行されている)が、発信者の番号と、CodeigniterアプリケーションのURLに着信するエージェントの端末番号を使用してHTTPPOSTを実行するコールセンターのセットアップに接続されます。 。このデータを使用して、通話レコードのデータベーステーブルにデータを入力しています。

これで、端末番号から(各端末には静的IPがあり、CodeigniterのセッションもIPにリンクされています)、アプリケーションのどのユーザー(ログインセッション)が通話を受信しようとしているかを確認できます。サーバー側からAJAXなどを介して特定のユーザーのブラウザにデータを送信する方法(通話番号、過去の通話記録などの通話に関するもの)を見つけたいですか?エージェントのブラウザは、サーバーから送信されたこの情報を表示する必要があります。jqueryなどによるブラウザからの定期的なポーリングは、データをほぼ瞬時に更新する必要があるため不可能です。この程度まで高速にポーリングすると、クライアント側でのCPU使用率が高くなり、ネットワークに余分な負荷がかかります。

PS:サーバー側からブラウザデータを変更する方法だけを知りたいです。

4

1 に答える 1

1

AJAX では、非同期の要求/応答にポーリングは含まれません。開いている TCP 接続とノンブロッキング I/O があるだけです。クライアントはリクエストを行いますが、すぐに戻ります。サーバーが応答を送信すると、クライアントに通知されます。したがって、ポーリングなしで AJAX の XMLHttpRequest を使用して目的を達成できます[1]。必要なのは、通知を提供するための URL だけです。どのようにスケーリングする必要があるかに応じて、1 つの要求スレッドと一般的なディスパッチ メソッド、またはそれぞれに異なる URL と異なるスレッドを使用できます。

[1] 正直なところ、ポーリングはほとんどありません。セッション/グローバルタイムアウトが何であったかを確立し、その制限時間内にリクエストを再発行する必要があります。

于 2012-09-30T16:22:49.793 に答える