友人のために ASP.NET で Ajax チャット Web アプリケーションを作成する必要があり、質問があります。client1 が client2 にメッセージを送信する場合、アプリケーションは client2 にメッセージを送信する方法を教えてください。新しいメッセージがあるかどうかを「尋ねる」サーバーにリクエストを送信するよりも良い方法はありますか? メッセージをクライアントに直接送信することは可能ですか?
1795 次
3 に答える
1
最善の方法は、 Persistent HTTP Connectionを使用することです。Google がGMAIL Web サイトで Google トークを使用する方法。
于 2009-11-07T14:11:19.427 に答える
0
HTTPはステートレス プロトコルであり、各トランザクションはクライアントからサーバーに対して行われることに注意してください。
サーバーはセッションを使用して、このクライアントが「既知」であるかどうかを判断できますが、プレーンな古いHTTPを使用してクライアントに情報を送り返すことは不可能だと思います(クライアントへの応答ではなく、サーバーが開始した接続からという意味です)
サーバーに情報をポーリングするには、Javascript を使用する必要があります。
逆の方法が必要な場合は、Java または Flash を使用することもできますが、NAT トンネリング、プロキシ サーバー、およびクライアントが使用する可能性のあるその他の奇妙なセットアップについても考慮する必要があります。
于 2009-11-07T14:09:43.110 に答える
0
いいえ、サーバーがクライアントのブラウザにメッセージを送信できないと思います。チャットアプリケーションを実装する方法は次のとおりです。
- client1 が Ajax 経由でサーバーにメッセージを投稿する
- サーバーはそれをリポジトリに保存します(この場合、シングルトンオブジェクトを使用しています)
- client2 はリポジトリからメッセージを取得します
- メッセージを既読にする
チャット セッションが終了または期限切れになったら、チャット ログをデータベースに保存します。
于 2009-11-07T14:10:18.583 に答える