2

Djangoでチャット(つまり、リアルタイムのテキスト会話)を実装する場合、どのように実装しますか?

それについての私の考え(noobを憐れんでください)-
アーカイブされたメッセージを保存するためのテーブルと現在のメッセージを保存するためのテーブルを作成します。
そして、javascriptを使用して20秒ごとに現在のメッセージテーブルをクエリすることにより、現在のチャットにデータを入力します。しかし、これはとても間違っていると感じます。
より良い方法が必要です。プッシュテクノロジーと呼ばれるものを聞いたことがあります。djangoでどのように使用しますか?
PS私のサイトはdreamhostで共有ホストされています。

4

2 に答える 2

3

ほとんどのWebチャットアプリケーションはCometProgrammingを使用する傾向があります。コメットは本当のプッシュテクノロジーではありませんが、それをシミュレートしたものです。まず、cometにはさまざまな実装がありますが、通常、プーリングとajaxを使用して、サーバーを繰り返しチェックし、メッセージがあるかどうかを確認します。コメットは一般的に往復が多すぎるため、接続を開いたままにするだけのBoshなどのより適切な代替手段を見つけるための措置が講じられています。これは、Cometとは対照的に、実際には実際のプッシュと見なすことができます。以下のwikiリンクには代替案がリストされていますが、一般的には、CometとBoshがチャットに最もよく使用される方法だと思います。両方の方法を一緒に使用することもできます。ここにいくつかのリンクがあります。

于 2011-04-28T06:02:54.100 に答える
1

主にフロントエンドに関心がある場合は、彗星を調べてください。

バックエンドに関しては、さまざまなオプションがあります。より簡単な方法は、特定のチャットルームのデータベースに各チャットメッセージを保存することです。多分チャットルームのテーブルとチャットメッセージの間の多対多の関係。

他のソリューションには、Djangoに組み込まれていないキーバリューストアデータベースが含まれます。メッセージをredisセットにプッシュしたり、アクティブなチャットルームのデータをmemcachedに保存したりできます。

これはdreamhostにあるので、データベースオプションを調べます。真実は、チャットメッセージごとにいくつかのデータを保存する必要があるということです。誰が作ったのか、何時に作ったのかなど。これは、環境のある時点でテーブルに入れなければなりません。ただそれを機能させるようにして、それからあなたがそれをより速くすることができるかどうか確かめてください。

于 2011-04-28T06:07:32.177 に答える