社区
高性能WEB开发
帖子详情
web聊天室的设计方案
yljcqw
2012-11-25 10:05:09
这两天使用python/tornado 实现一个comet的在线聊天室,现在的大致框架是,中间层用redis,tornado将用户新消息存到redis, 客户端更新消息则由redis中取得。
因为没啥经验,想问一下,我要保存聊天记录,该如何做才好。在用户来新消息时,就写入数据库吗?这样会不会给数据库很大的压力,因为聊天消息有时候会来得很快很频繁。
好像QQ的客户端是把聊天消息记录在本地的txt文件,再做同步的。
如果大家做在线聊天室的话,会如何考虑这个呢?求提供思路。
...全文
778
10
打赏
收藏
web聊天室的设计方案
这两天使用python/tornado 实现一个comet的在线聊天室,现在的大致框架是,中间层用redis,tornado将用户新消息存到redis, 客户端更新消息则由redis中取得。 因为没啥经验,想问一下,我要保存聊天记录,该如何做才好。在用户来新消息时,就写入数据库吗?这样会不会给数据库很大的压力,因为聊天消息有时候会来得很快很频繁。 好像QQ的客户端是把聊天消息记录在本地的txt文件,再做同步的。 如果大家做在线聊天室的话,会如何考虑这个呢?求提供思路。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
纯属为了扯淡
2012-12-13
打赏
举报
回复
异步保存聊天记录
torytin
2012-12-12
打赏
举报
回复
如果你说的是在用户端保存消息的问题,那在用户端内存里面保存就行了,用户查看聊天记录就在本地前后翻一下就行,服务器端是一有该用户的新消息马上推送给用户并在服务器内存里面删除该聊天内容。 除非你要跟我上面说的,需要用户下次登录的时候还能看到之前的所有聊天记录,否则真没必要把聊天内容持久化
torytin
2012-12-12
打赏
举报
回复
在线聊天室还需要保存聊天记录么?直接存内存(redis)里面就行了吧。既然是comet的,那么一个用户给另一个用户发送消息只是在服务器中转一下而已,而且这个中转时间很短(最多是几秒的时间,很快就推送给相应的消息接收方了,人打字的速度几秒也就一两句话而已),就算每个用户预留1k大小的缓存,10万用户也就100M内存,你的这个在线聊天会有这么多同时在线用户么? 除非你需要把用户所有的聊天记录都保存在服务器端,并且支持离线消息,不然真没有必要把消息持久化
mrslikelin
2012-12-12
打赏
举报
回复
2.是插入本地的txt里 并且做了 发送与未发送的特殊标示 未读与已读的标示 对这些未处理的信息 做一个定向的 处理,不经过服务器 数据库 直接就发给对方(形成对讲机的形式) 减少了服务器数据库的压力
mrslikelin
2012-12-12
打赏
举报
回复
txt里的聊天记录是你本地的 1.服务器上的应该是数据录入服务器了的(推测 我不是太明白qq聊天工具) 插入服务器了 才会在对方哪里读取出来
超级大笨狼
2012-11-29
打赏
举报
回复
写库的前边加个内存队列。 写入行为心跳触发,找个安全的阀值控制写入流量。
huaye
2012-11-29
打赏
举报
回复
使用log4j生成聊天日志,或者自己写一个根据每个用户生成一个日志文件,然后单独使用几个线程分别处理日志到数据库。
personball
2012-11-27
打赏
举报
回复
不管是录入数据库还是写入文件,基本上压力就是来自频繁的IO操作 楼主需要的是一个写缓存策略吧,以一定时间间隔或一定记录数量作为阀值触发一次批量写操作就行了。
二农
2012-11-27
打赏
举报
回复
server端:log4j日志插件可以按天生成日志文件,聊天记录按照日志生成规则写入日志文件,通过读取这些日志的内容获取聊天记录,这种方式比较方便些
Jia_H
2012-11-25
打赏
举报
回复
建议:中间的Server层负责这个工作就可以了。例如可以把数据先存在文件或者别的地方,然后定时/定量/压缩(根据实际情况自己确定策略)提交到数据库中就可以解决所谓数据库的压力了。
VB网络编程实例
或者正在工作,并且判断拨号时是否遇忙音 ◆ 45.htm 利用TAPI进行电话拨号 ◆ 46.htm 利用VB访问Internet ◆ 47.htm 利用VB设计
聊天室
◆ 48.htm 利用Visual Basic实现无线通讯 ◆ 49.htm ...
基于Java
Web
聊天室
设计与实现
WEB
聊天室
面向因特网开放,是提供给众多用户的一个开发的娱乐平台,借助
聊天室
用户完全可以自己主动选择聊天的对象,创造私下交流的机会,从而建立众多用户之间相互交流、传递情感的绿色通道。主要的功能有:查看...
Web
聊天室
简易版:构建与实现
通过学习和分析源代码,开发者可以掌握
Web
聊天室
的基本架构、工作原理,并了解如何实现用户交互、消息传递等核心功能。该源代码是开源的,允许开发者自由查看、使用、修改和分发。源码中涵盖了前端和后端技术、实时...
Web
聊天室
历史记录解决方案(轻喷。。)
之前写的
Web
聊天室
一直没有更新了,其实还有一些功能没有完善,比如历史记录、视频对话等。这几天心血来潮,捡起之前的代码,从看起来最简单的聊天记录开始整。 开始之前 当时写这个
聊天室
的时候,没有考虑保存聊天...
基于Python
web
的多人
聊天室
本文介绍了基于即时通讯的Python实现
web
版多人
聊天室
的设计和实现。这个系统利用了多种先进的技术,如Django、Channels、
Web
Socket,来实现即时通信,并利用MySQL和Redis作为数据库,同时还采用了多种前端技术,如...
高性能WEB开发
25,980
社区成员
4,366
社区内容
发帖
与我相关
我的任务
高性能WEB开发
高性能WEB开发
复制链接
扫一扫
分享
社区描述
高性能WEB开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章