وجود العضو في غرفة دردشة (دردشة الحصول على تحديث بالاقتراع بسيط)

StackOverflow https://stackoverflow.com/questions/705241

سؤال

وقمنا بتنفيذ ميزة غرفة دردشة بسيطة في القضبان باستخدام التحديثات اياكس بسيطة. الآن في كل غرفة دردشة ينتمي رسالة إلى مستخدم معين. نريد أن نظهر قائمة المستخدمين (شيء من هذا القبيل وجود المستخدم). يرجى اقتراح السبل. نحن لا تستخدم جابر، XMPP الخ.

وهذا النموذج هو غرف الدردشة:

class ChatRoom < ActiveRecord::Base
  validates_presence_of :title

  has_many :messages,:foreign_key=> "chat_room_id"
  has_many :stories,:foreign_key=>"chat_room_id"
  has_many :topics,:foreign_key=>"chat_room_id"


end

والرسائل والأحاديث المرسلة من كل مستخدم.

ونموذج الرسالة:

class Message < ActiveRecord::Base
  belongs_to :user
end

والنموذج المستخدم هو:

class User < ActiveRecord::Base
  acts_as_authentic :crypto_provider => Authlogic::CryptoProviders::BCrypt
  validates_presence_of :nick
  validates_uniqueness_of :nick
  has_many :questions
  end

يرجى اقتراح السبل

هل كانت مفيدة؟

المحلول

لتتبع التي المستخدمين في أي غرفة، هل يمكن اقامة علاقة HABTM بين غرف الدردشة والعضو النماذج. و، يمكنك إضافة عمود last_poll_datetime إلى النموذج المستخدم لتتبع آخر مرة المستخدم باستقصاء الرسائل (أكثر على هذا الجزء في دقيقة واحدة).

لعرض قائمة جميع المستخدمين في غرفة معينة، استخدم HABTM بك انضمام الجدول، ChatRooms_Users. عليك أن تكون إدراج / حذف من هذا الجدول عندما ينضم أي مستخدم أو يترك الغرفة.

إذا كنت تريد أن تنتهي المستخدمين الذين إغلاق برامج التصفح الخاصة بهم بدلا من النقر فوق "غرفة الإجازات، وإعداد مهمة كاسحة لتشغيل كل دقيقة التي تبدو للمستخدمين مع last_poll_datetime دقيقة مضى عليها أكثر من واحد وإزالة صفوفهم من ChatRooms_Users انضمام الجدول.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top