正文

[日记]Web聊天性能优化2007-02-06 22:36:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/fengfei/23142.html

分享到:

先痛呼一下: 妈的,公司要16号才放假, 离过年都只有2天了.. 郁闷,到时如果不努力点买票,估计就回不去了..   痛苦啊..   哎,以后估计这种事情的常常碰到了。..


 今天李哥总算来了,都有一个多星期没来了,据说科大现在正在做一个项目,被招进去做的人都被要封闭,李哥也被招进去做了。  -_-,没搞错。 这种事以前看电视看到过,现实中还没碰到过。今天不知道李哥怎么出来的,反正早上和策划开了会,然后分配了工作,到下午人又不见了。  估计到放假他都不会来了。 寒。。 好了进入正题。
 早上流媒体组+策划一起讨论基于Web国度电视(其实昨天已经讨论了,不过总领导人李哥不在所

以很多问题不能确定,后来辉哥打电话叫他来他才来的),讨论了半个多小时才结束。感觉国度电视其中最新颖的一个特点就是可以实现“定时录制功能”,即你可以边看边下,这个功能我相信在国内基本还是没有的。

讨论完后就是和李哥讨论上周的工作情况和问题,最主要的就是Web聊天的性能优化(另外开辟存储空间来存储聊天信息,用户通过检索此内存空间来接收消息,从而不需要通过检索此数据库来接收消息,这样可以大大降低数据库的压力.). 我觉得有4种方案可行:
 第一种: 用户A发送消息给B, 通过服务器控制,将消息存储到B的Session, B就通过检索自己的Session来提取消息. 碰到的问题: Session的会话ID是按GUID来随机分配的(这个不难解决,自己重写那个分配ID的函数就行了), 第二个是: 服务器能不能遍历所有的会话ID,并将消息保存到对应的接收用户的Session中(这个还不知道.NET能不能实现,晕阿).


 第二种: 将聊天消息保存到Application的HashTable中, 用户检索HashTable,当检索到消息后接收并把存在HashTable中的消息删掉(这样可以节省内存空间).这种很容易就可以实了。

 第三种: 利用ASP.NET的配置文件来实现(前几天看到的,还没确定能不能实现).


 第四种: 利用ActionScript脚本中的XMLSocket来实现,这样就可以实现由服务器主动发送消息给客户端。这种估计是性能最好的。 不过ActionScript编程现在还正在学,Socket编程只懂一点,有点难度.
 
 本来第二种方案在上次中就已经被李哥给否决掉了,他希望最好能通过第一种方案来实现.  他问我, 说"你在周报上写到用Session来实现恐怕不行,为什么?", 我就把碰到的问题跟他说了,并说"最终结果这个星期确定。"。 我原来一直不明白为什么通过Application方式为什么不行,我就问他“第一种方案里也会用到Application来存储用户会话ID和用户ID等等, 而第二种方案在Aplication存的数据差不多一样,为什么第二种不可以。”, 他说的原因是“多个用户同时检索消息,会涉及到Application的Lock与unLock问题。恐怕到时会有一定的麻烦。”。 不过他听到我说第一种方案中也要用到Application,又讨论了下,最终决定要我试用下Application。 然后我又问他用第四种方案XMLSocket怎么样,他看了下,说“还是先用Application做,等第二期优化时在去考虑XMLSocket把”! 讨论完后,他马上就回办公室干其它事去了, 下午就回学校继续封闭作项目了, 额,强人就是事忙啊。。   听辉哥说在德过世界杯时间, 科大的人就是轮着用PPLive, PPStream 和 李哥临时写的一个播放软件看的.  一当哪个卡就换另外一个..   额..  什么时候杂也会有这种水平呢. 估计远的很呢..

阅读(3279) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册