用户存在聊天室(聊天得到通过简单的投票更新)
-
22-08-2019 - |
题
我们已经实现了Rails中使用简单的Ajax更新一个简单的聊天室功能。现在,在每个聊天室的消息属于特定的用户。我们希望向用户展示的名单(类似用户的存在)。请建议的方式。我们不使用Jabber,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删除其行连接表。
不隶属于 StackOverflow