2009-09-11 10 views
6

私はasp.netでチャットシステムを実装しています。これはgoogleチャットとよく似ていますが、xmhttpを使ってデータを送受信しています。チャットシステムの実装:チャットデータの保存場所

私はXMLHttpRequestを使用してデータをより良く整理するために、sigleテーブルにすべてのチャットを保存するのではなく、ユーザーはそれにアクセスしています。)

私のシステムではチャットを保存する必要はありません。そのため、グローバル一時テーブルは既に削除されているため、それをクリアする手間が省けます。

Xmlhttprequestによってテーブルが作成された後は、作成直後にドロップされます。なぜこのようなことが起こるのかはわかりません。私はすべての接続ラインを削除しましたが、運がまだありません。

どうすればいいですか?また、ベストプラクティスについて私に指摘できるオンラインリソースが誰かに分かっている場合は、教えてください。

+0

チャットを保存する必要がない場合、なぜそれをDBに入れていますか?スナップショットアイソレーションのロックを心配している場合は、http://msdn.microsoft.com/en-us/library/tcbchxcb.aspx – RichardOD

+0

独自のIRC、Jabberなどを実装しないでください。 – reinierpost

答えて

1

テーブルにアクセスする多くのユーザーにロックの問題はありません。テンポラリテーブルはクロスコールを共有するためのものではありません。あなたはそのパスの下にはるかに多くの障害物を抱えています。テーブルにデータを格納してから、テーブルをポーリングするほうがよいでしょう。

「ロックの問題」が発生する可能性があるのは、ユーザーが同じ行に同時に同じチャンクを書き込もうとしている場合です。チャットアプリケーションでは発生しないはずです。

さらにGoogleチャットは、ポーリングの実装ではなくCOMETスタイルの実装を使用します。私の経験では、COMET>ユーザーエクスペリエンスの観点からのポーリングです。

+0

どうすればいいですか、どうすれば対応できるか教えてください。 – Abhishek

+0

ごめんなさい、私はCOMETスタイルについて知らないので、教えてください。 と私に返信していただきありがとうございます。 – Abhishek

+0

http://en.wikipedia.org/wiki/Comet_%28programming%29 – RedFilter

0

オフラインメッセージを実装している場合を除き、実際にあなたのデータベースにチャットメッセージを残すことはありません。

関連する問題