1

その部屋のユーザーのリストを含むチャットルームを実装する必要があります。これを mysql+memcache で行います。ユーザーがルームに出入りすると、ルーム内のユーザーの配列が更新されます。しかし、サイトには自動ログアウトがあるため、非アクティブなユーザーは 30 分間非アクティブになるとログアウトされます。これが現在問題になっています。

自動ログアウトがいつ発生するかわからないため、ルーム内のユーザーのリストを更新できません。非アクティブなユーザーをログアウトするためのスクリプトはありません。メインのオンライン リストでは、次のようにリストされています。 SELECT * FROM users WHERE last_fresh > 1352415100 私たちのオンライン リストには、ユーザーが 30 分以上非アクティブであることは示されていませんが、last_fresh 時刻を配列に保存および更新することはできません。その部屋のすべてのユーザーがページを更新するたびに、部屋のユーザー。

どうやってやるの?

4

1 に答える 1

0

変更をプッシュするかプルするかによって異なります。プッシュは常に優先されますが、nginx-push-module やその他のサーバー側テクノロジーのようなものが必要になります。プルは間違いなく簡単ですが、オーバーヘッドが増えます。

プルしている場合は、ログインしているユーザーのリストをポーリングし、データに基づいてルーム リストを更新できます。ビューを更新する ajax 呼び出しがこれを実現します。jQuery またはプロトタイプを見てください。

于 2012-11-08T23:33:04.940 に答える