我正在编写用户 - 管理员聊天系统(已登录用户),管理员必须在其中检测在线用户。我对这种系统没有任何经验,我需要你的建议。
我创建了以下表格:
users (user_id, last_active, login, password)
chat (chat_id, user_id, read, dir, msg, posted_on)
history (history_id, user_id, dir, msg, posted_on)
我每7秒钟用jQuery做一次异步请求或发送消息,每次在服务器端我都会做以下操作:
if(isset($_POST['msg_send'])){
//check admin(user) online statuse:if admin(user) online insert msg to chat and history.
if admin(user) isn't online, echo "admin not online"
return;
}
//get message from chat ;
//update chat_table;
我想知道:如果我为每个请求执行此操作,它会在性能方面受到重创吗?如果是这样,你能建议另一种选择吗?
答案 0 :(得分:1)
虽然这可能不应该是一个巨大的性能影响,取决于聊天室的活跃程度,值得考虑缓存聊天室。
例如,您可以缓存从数据库接收的任何数据,并且只要用户登录或发布新邮件,就可能导致这些缓存过期。
还有许多缓存方式。两个例子是基于文件的缓存或使用memcached。
希望这会有所帮助 丹尼尔