私の最初のチャットルームはASP 3.0で書かれていました。 プログラムは比較的単純です。当時、実際のチャットルームを構築するには、JavaアプレットまたはActiveXコントロールを使用する必要があります。 HTTPベースのチャートルームは、私の最初のチャットルームと同じ質問に直面していました。これらの問題には、ページの更新によって引き起こされる画面の点滅現象が含まれます。しかし、この問題はAjaxによって解決されました。 Ajaxは、JavaScriptとXMLの非同期呼び出しの組み合わせです。ここで、サーバー上のJavaScriptコードを使用して、実際のチャットルームを実現します。この記事ではAjaxは紹介されず、AjaxとAsp.netの使用について特定の理解があると想定しています。 Ajaxテクノロジーを使用して基本的なチャットルームを作成する方法を紹介してください。
ルーティーン
これは、マルチユーザーの単一のチャットルームです。基本的なチャット関数を達成でき、次のようないくつかのコマンドラインもサポートします。このプログラムは、チャティンクラスですべてのチャット情報とユーザー情報を処理するためのこのプログラムを示しています。
ハッシュテーブルユーザー。
StringCollection Chat;
Global.asax.csのGlobal Chatengineインスタンスを宣言し、チャットルームですべてのユーザーを共有する:
public static uchat.chatngine.ichatngineエンジン= new uchat.chatngine.chatengine();
また、グローバル変数とページ情報を同期するために使用されるJavaScriptタイマー機能もあります。
functionsittimers()
{{
timeId = window.settimeout(updateall()、refreshrate);
}
各ユーザーは、ユーザー名とGUIDによって一意に識別されます。
public void adduser(string id、string user)
{{
//ユーザー名がALREAMYが存在しないことを確認してください
if(!userexists(user))
{{
//ユーザーリストにユーザーを追加します
users.add(id、user);
//すべてのユーザーに通知メッセージを表示します
chat.add(this.makeservermessage(string.format(string.format)(
ingededfmt、user))));
}
}
インターフェイスを実行するプログラム
開始ページには、ユーザー番号、チャット履歴のサイズなど、現在のセッションに関するいくつかの基本情報が表示されます。ユーザーは、チャットルームに入るためにユーザー名を提供する必要があります。 [ログイン]ボタンをクリックして、以下の関数を入力します。
保護されたボイドログイン(オブジェクト送信者、eventargs e)
{{
string user = txtusername.text;
if(!validAtenick(user))return;
if(global.engine.userexist(user))
{{
lblerrormsg.text =この +を持つユーザー
Alreamという名前、もう一度やり直してください。
戻る;
}
Response.redirect(server.aspx?action = login&u = + user);
}
いくつかの簡単な検証の後、ユーザーはAdduser関数を介してユーザーリストに追加され、この時点でチャットルームのページchat.aspxを入力します。
<script type = text/javascript>
sniffbrowsertype();
//読み込みを表示します。画面
showloadscreen();
// JavaScript Timeerを設定します
//ユーザーリストとメッセージをロードします
Settimers();
setFocus( 'myText');
</script>
ユーザーがいくつかの情報と返品を入力すると、次の機能が呼び出されます。
<入力型=テキストclass = myText
id = myText Onedown = CapturerEturn(event)>
//入力ボックスのENTERキーをキャプチャし、メッセージを投稿します
関数CapturerEturn(イベント)
{{
if(event.which || event.keycode)
{{
if((event.which == 13)||(event.keycode == 13)))
{{
posttext();
falseを返します。
}
それ以外 {
trueを返します。
}
}
}
function posttext()
{{
RND ++;
//最初にテキストボックスをクリアします
chatbox = getElement(myText);
chat = chatbox.value;
chatbox.value =;
// URLからユーザーGUIDを取得します
userid = logation.search.substring(1、locally.search.length);
// ajaxサーバーURLを構築します
url = 'server.aspx?
encodeuricomponent(chat) + '&session =' + rnd;
//インスタンスを作成して設定します
// Aupprant xmlhttpリクエストオブジェクトの
req = getajax();
//新しいメッセージを含むページを更新します
req.onedeadystatechange = function(){
if(req.readystate == 4 && req.status == 200){{
updateall();
}
}
req.open( 'get'、url、true);
req.send(null);
}
非常に多く、特別なものは何もありません。ソースコードを見ることができます。注釈情報がたくさんあります。
結論は
Javaアプレットでチャットルームを構築するには、ユーザーのマシンにJVMをインストールする必要があります。 ActiveXコントロールにはセキュリティの問題がいくつかあります。 Ajaxが導入されたばかりで、ユーザーにソフトウェアをインストールする必要がないHTTPに基づいてチャットルームプログラムを簡単に作成できます。