asp.net即时通讯

大笨蛋 2011-04-14 05:51:37
b/s系统中即时通讯系统
现在我实现的方式是用ajax
定时去读数据库数据
这样虽然可以实现功能,但是对服务器压力比较大
以后用户量增多的话对服务器压力太大。
所以请教有没有累死项目经验的大虾给些思路。。。
谢谢。。。

还有个问题,有一片文章,只有一个人在输入(修改)
其他用户都能看到实时数据,也就是整片文章在定时刷新。
如果文章很长的话,定时去读所有数据的话。
这样的性能问题更严重,求思路。。。求思路。。。

谢谢。。。
...全文
687 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
遇到同样问题 求解 QQ:457100097
bloomisok 2011-10-17
  • 打赏
  • 举报
回复
期待呢 。
  • 打赏
  • 举报
回复
求解 即时通讯 QQ:2601207385
  • 打赏
  • 举报
回复
求助 即时通讯 还在争扎中 求解。。。 QQ:2601207385
大笨蛋 2011-04-17
  • 打赏
  • 举报
回复
谢谢大家,结贴了。。。
酷儿 2011-04-15
  • 打赏
  • 举报
回复
第二种就是缓存 呵呵 只要有更新就会改变数据源
hwbox 2011-04-15
  • 打赏
  • 举报
回复
不用memcach不直观在 application star中维护一个全局的静态变量就行了,操作时别忘了加锁
hwbox 2011-04-15
  • 打赏
  • 举报
回复
这种通讯记录是不用数据库的,用一个系统内存表做缓存,10秒没来取的数据就清掉了,让用户1发的数据入表,记录入表时间,用户2的请求来时,把发给用户2的所有记录返给他,然后清表中记录。做一个监控线程每5秒检查一下内在表中存在了10秒的数据,清掉。
ycproc 2011-04-15
  • 打赏
  • 举报
回复
socket 通讯 tcp/ip+UDP
  • 打赏
  • 举报
回复
考虑性能的话,这个真有难度。
yb00k 2011-04-15
  • 打赏
  • 举报
回复
传统方式ajax方式

分2种情况,第一种离线模式,这个需要直接存储进入数据库,然后用户登录的时候直接查看到属于个人的信息,借鉴:BBS的短信
第二种在线方式,通过服务器共享方式,比如:application 这种 直接制作成聊天室这种

2中方式进行切换。

---------
另外一个问题,是否可以通过设置 断点的方式,把一个文章分成几段,然后组合起来,根据每一段是否修改局部从数据库获取数据来组合。
my1433694700 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wangrui0610 的回复:]

谢谢上面的朋友

看到过一些网站客服系统
不知道实现方式。。。
[/Quote]
======================
按9楼去开发,你的系统我可以保证可以至少顶5000个用户同时性的文本性质聊天。
shine_fly 2011-04-15
  • 打赏
  • 举报
回复
我也给你再顶哈~
bluedoctor 2011-04-15
  • 打赏
  • 举报
回复
可以使用Silverlight来做客户端,采用WCF双工通信,这样服务器就可以主动发信息给客户端了。
小童 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wxr0323 的回复:]
引用 5 楼 wangrui0610 的回复:

4楼能说的详细点不?

继续顶。。。

长轮询指的就是timer吧。
这样服务器压力更大。
问题1 感觉你现在的做法还算可以。。

问题2 不用整篇文章 你的长文章需要分页吧。

那修改哪页 记录一个开始 一个结束 传入数据库更新一下在取的时候就取当前页。
[/Quote]+1
大笨蛋 2011-04-15
  • 打赏
  • 举报
回复
谢谢上面的朋友

看到过一些网站客服系统
不知道实现方式。。。
my1433694700 2011-04-15
  • 打赏
  • 举报
回复
没错过聊天通信类的;
不过跟楼主提几个优化机制:
1.前台Ajax请求服务器端数据的时候,能否使用Memcached进行数据中间层,即信息的更新与读取一切都在内存中操作,服务器端采用作业机制定期如10秒同步Memcached到数据库中(虽然特殊无法预料导致Memcached当掉),但基本上数据丢失量少,这个可以尝试下。
2.服务器端的IIS一定要配置压缩Http输出,即GZip压缩配置。

基本上我所考虑最直接优化就这两种,其他的各位高手再提议。
  • 打赏
  • 举报
回复
ajax轮询吧,用户量大了再说
Http本来就不是专门用来干这活的
TCP socket
子夜__ 2011-04-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wangrui0610 的回复:]

4楼能说的详细点不?

继续顶。。。
[/Quote]
长轮询指的就是timer吧。
这样服务器压力更大。
问题1 感觉你现在的做法还算可以。。

问题2 不用整篇文章 你的长文章需要分页吧。

那修改哪页 记录一个开始 一个结束 传入数据库更新一下在取的时候就取当前页。
加载更多回复(5)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧