日期:2014-05-18  浏览次数:20763 次

类似于CSDN的会员站内消息系统是怎么实现的?希望朋友们给些方案,分不够可加
现在的一个网站需要强大的会员系统支持,其中需要会员之间的即时通信,参考了很多网站中类似的设计,他们都是采用的消息存库然后再采用定时刷新的方式来实现,但这样肯定会给数据库太大的负担,特别会员量相对较大的情况,所以希望朋友们多给意见,以及解决方案,分不够可加,谢谢

------解决方案--------------------
定时刷新的做法确实耗资源了

在指定时间其页面一刷新的时候就获取一次?
------解决方案--------------------
ajax定时获取
------解决方案--------------------
不需要定时刷新,短消息没有必要也不太可能做到实时的,即使论坛也一样
刷新页面的时候读取一次就行了

对论坛而言,用户也不太可能在一个页面上停留太长时间。
------解决方案--------------------
关注,学习
------解决方案--------------------
up
------解决方案--------------------
关注一下
------解决方案--------------------
斑竹出来看下这个问题是什么原因的

------解决方案--------------------
有无不通过数据源中转的机制,无论是数据库还是xml? 能否像cs中的通信一样
---------------
如果在js脚本中访问socket还需要flash组件,对于某些跨防火墙的场合就不合适
--------------

也就是说可以采用JS脚本访问socket的方式来实现类似CS中的无需数据源中转就能通信,然而可能在某些场合可能会有局限,是这个意思?

------------------------------------------------
flash组件普及率很高,但是对一部分没有安装的用户,以及防火墙后面的局域网用户,都可能受到限制

不知道为啥这么讨厌数据源集中保存的方案,他很简单,可以通过缓存来改善性能,可以和应用,内容数据库分别部署,也不影响数据库吞吐
------解决方案--------------------
有无不通过数据源中转的机制,无论是数据库还是xml? 能否像cs中的通信一样
---------------
如果在js脚本中访问socket还需要flash组件,对于某些跨防火墙的场合就不合适
--------------

也就是说可以采用JS脚本访问socket的方式来实现类似CS中的无需数据源中转就能通信,然而可能在某些场合可能会有局限,是这个意思?

------------------------------------------------
flash组件普及率很高,但是对一部分没有安装的用户,以及防火墙后面的局域网用户,都可能受到限制

不知道为啥这么讨厌数据源集中保存的方案,他很简单,可以通过缓存来改善性能,可以和应用,内容数据库分别部署,也不影响数据库吞吐
-----------------------------------------------

并没有对数据源中转机制有抵制态度,因为自己只知道这个模式的.想看看大家都怎么做的.hoho
------解决方案--------------------
消息本来就不一定要保存到数据源的
------解决方案--------------------
只能用ajax了 还能有什么别的办法吗?
------解决方案--------------------
我不知道你们是怎么想的,思考一下Web的机制,不刷新能得到新的消息吗?局部刷新也是刷新。在接收消息时只有间隔一段时间去接收,ajax也是一样对服务器进行请求。所有操作都是向服务器请求才有结果,而不是服务器主动对客户端发送消息,好好思考推拉机制。
实现的操作
1.通过ajax定时接收消息。
2.在隐藏页面中实现定时刷新向服务器请求,接收消息。
在功能上可以自己定制消息队列,定时存储在存储介质上,也可以有策略的存取,来减少对IO的操作。