私は昨夜ずっと、自分のWebサイトにドラッグするだけの無料のAspNetWebチャットコントロールを探していました。ユーザーのリスト、1対1のチャット、ユーザーを追い出す機能など、自分のニーズに一致するコントロールが見つからなかったため、検索は無駄でした。
結局、私はスクラッチから自分のコントロールを作成することにしました。それは私のマシンではうまく機能しますが、共有ホスティング環境では少し粗雑で実用的ではないかもしれないと心配しています。
基本的にこれは私がしたことです:
- チャットメッセージを保存するSQLデータベースを作成しました。
- ストアドプロシージャを記述し、古いメッセージをクリアするステートメントを含めました
次に、「原油」の部分:
- 更新パネルとタイマーコントロールをページにドラッグしました
- 更新パネル内のチャットメッセージテーブルにデータバインドされたリピーターをドラッグしました
- 別の更新パネルをドラッグして、その中にテキストボックスとボタンを配置しました
- 5秒ごとにチェックするようにタイマーコントロールを構成しました。
..そして、すべてをこのように機能させました。タイマーティックイベントで、リピーターでDatabind()を呼び出すことにより、メッセージ表示を「更新」しました。
protected void Timer1_Tick(object sender, EventArgs e)
{
MyRepeater.DataBind();
}
次に、送信ボタンのクリックイベントで
protected void btnSend_Click(object sender, EventArgs e)
{
MyDataLayer.InsertMessage(Message, Sender, CurrTime);
}
それは私のマシンでうまく機能し、他の機能(ユーザーリスト、ユーザーのキックアウト..)を追加のテーブルを作成するだけで機能させることができます。
しかし、私が言ったように、それは私には少し粗雑に思えます。だから私は専門家の意見が必要です。これで実行する必要がありますか、それとも別のアプローチを試す必要がありますか?