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

100分散:高手来下,想做个网页即使通讯的程序,数据库怎么来最佳设置
想做个网页版的即使通讯程序,

想请教下:

1.发送的数据再显示是用定时刷新吗?

2.这些数据是暂时先用xml来处理好些还是直接用数据库?

3.如果我想同时支持1000人在线,在程序方面有需要特别注意的地方吗?



谢谢!~

------解决方案--------------------
1.纯web版的大多数都是,当然你ria的话另说.
2.看你说的是哪些数据了,如果消息需要存档的话最好还是放到数据库里,试想你1000人在线这消息量得多大啊.
3.主要就看你的功底了,资源该使用的使用该释放的释放,同时在线数还是很大的,得需要IIS的设置吧,默认好像只100.

------解决方案--------------------
up
------解决方案--------------------
1.发送的数据再显示是用定时刷新吗?
只有添加了数据后才需要刷新,--用AJAX局部刷新!

2.这些数据是暂时先用xml来处理好些还是直接用数据库? 
XML处理数据量小的话有优势,数据量大的话还是用数据库!

3.如果我想同时支持1000人在线,在程序方面有需要特别注意的地方吗? 
1000人同时在线不算什么大不了的事

仅供楼主参考!!
------解决方案--------------------
1.数据当然是用直接用数据库,毕竟数据库是经过优化的,你直接用xml操作,不一定是经过优化
2.发送的数据再显示是用定时刷新吗?
这个看你的需求,比如说你可以通过axctive控件,active控件跟服务器是通过socket通信也行,socket用广播方式同时全部发送,socket控件,收到消息后,响应事件,
如果对于普通的即时通信,可以通过定时刷新来实现,不过这对服务器的压力比较大,毕竟大家都刷新,都请求服务器

3.同时支持1000人在线,服务器中的一些非即时数据,可以采用缓存cache,这样不需要每次都请求数据库,可以减轻一些压力,只要你程序没有问题,IIS不会有什么问题.

其实这上面这些都取决于你的即时方式,是用控件用socket跟服务器通信,还是定时刷新,
以个人经验,即时的消息驱动可以采用socket通信,这样会好一些,服务器压力也会少很多.
如果是用socket,需要一个似于处理中心的程序或者服务,服务器也是连接到该处理中心,客户端登录服务器后,也是通过控件发送请求到处理中心,告诉处理中心已登录,
每一个消息的处理过程就是:
服务器--->到客户端(服务器发送消息-->处理中心-->进行处理,分发,或者广播方式发送-->客户端控件接收进行处理)
客户端--->服务器(客户端发送消息-->处理中心-->进行处理理,-->发送到服务器中的客户端-->服务器控件接收进行处理)