要求是这样.
服务器端数据一但改变,所有连接到服务器的客户端的JSP页面数据就全部更新掉.
打个比方.
比如就像是查看股票行情的一个jsp页面,现在我连在上面,这时候服务器数据一但改变,则服务器就马上把所有连在这个服务器上面的客户的jsp页面数据全部刷新一遍.
要求:1.不能用jsp页面定时刷新.这样总闪不好
2.不能用ajax.我看了一下ajax实现动态刷新也是用的定时去连服务器.人数多的情况下,数据量又大,服务器也受不了.
所以只能从服务器端想办法.
我用了个方法,就是保存客户的request和respones信息,然后用foword跳转.不过总报错. 有没有人能解决这个问题? 我今天不睡觉了,在线等答案!请达人们速来救我.!!!!!!!!!!!!
服务器端数据一但改变,所有连接到服务器的客户端的JSP页面数据就全部更新掉.
打个比方.
比如就像是查看股票行情的一个jsp页面,现在我连在上面,这时候服务器数据一但改变,则服务器就马上把所有连在这个服务器上面的客户的jsp页面数据全部刷新一遍.
要求:1.不能用jsp页面定时刷新.这样总闪不好
2.不能用ajax.我看了一下ajax实现动态刷新也是用的定时去连服务器.人数多的情况下,数据量又大,服务器也受不了.
所以只能从服务器端想办法.
我用了个方法,就是保存客户的request和respones信息,然后用foword跳转.不过总报错. 有没有人能解决这个问题? 我今天不睡觉了,在线等答案!请达人们速来救我.!!!!!!!!!!!!
解决方案 »
- jsp 分页 怎样设定显示的页码数?
- struts工程form表单提交乱码问题 谢谢了用了 几种方法都不行啊
- 为何我做的文件下载链接不能进行进行下载?
- document.form1.submit() 对象不支持此属性或方法
- 我的小项目做完了,不知道怎么打包在tomcat下发布,请大虾指点,感谢!!!
- com.jspsmart.upload.SmartUpload.upload异常错误
- ip动态代理机制与同jvm上的一个web项目同时存在,访问会出问题嘛
- 有人见过这个错误吗?请帮帮忙
- 为什么我的代码不能运行?
- 初级问题:),有关叶面显示
- getParameter和getAttribute的区别
- jsf中如何取得当前系统路径
或者用applet
这样好象效率会高一点..
<% response.setHeader("refresh","1"); %>
没一秒刷新一次
以前做过一个赌球行情的,和这个差不多,20秒刷一次,最新的行情变动还会闪。1.不要每次都去读数据库,反正大家看的都是一样的东西,一有改动马上放到一个缓存里,只从缓存里调数据。2.不要用xml,用纯文本,自已定一个规则,尽可能的节约流量。到IE再用js进行解析。
我就是所有数据全部用逗号和|号分开,引号和别的都不用。
3.如果服务器CPU强的话还可以只给用户改动过的数据,就是提交时有一项上次更新时间,只给用户更新过的数据,这个要遍历的,所以会有点慢,但因为在内存操作,还是比从数据库读要快得多几个数量级。
ftiger(哈哈鱼)的方法可行,但是效率远远不能和C/S相比啊,如果你真得想做好,那么就用C/S做或装插件了
这样用WEB START就可以了,还有利于JAVA的普及^-^
可以让客户端,每过一段时间,自己发请求,但是这样会对服务器产生很大的压力。
另外服务器推技术具体是怎么实现的?
针对你的问题,一个用户向服务器进行请求,其它用户没向服务器请求的情况下,这些其它用户始终不可能收到服务器的任何信息(因为他们没发请求)。这也是这类问题通常通过客户端不断刷新从而不断产生对服务器的请求,来实现信息的接收的做法的一个原因。
记住没有“请求”就没有“响应”!!!
理论说了很多,不信动手试试。有兴趣的继续讨论,这里其实还有一个逻辑问题呢。先不说了:)
具体的实现也很简单,就是客户端第一次请求到服务器以后,服务器将客户端的response状态保存下来,等服务器有数据更新了,激活保存response的队列,然后通过response.write 向客户端写入数据即可。速度还是比较快的,我们测试过,比客户端动态刷新的效率高不少。具体到页面怎么显示只要使用一点js 就行了。
这里有一个成熟的商业应用:
http://www.lightstreamer.com/
有兴趣的话可以去看看。
或者你觉得服务器推技术有更好的解决方法?
lightstreamer是个商业应用。不知道你是怎么知道它原理的。难道你反编译了它了吗。我之所以说lightsrteamer是使用服务器推技术,是因为它在客户端使用的js解析和我做的原理差不多。
表现为并发数量很小。既然你的人数很多,肯定不合适。还是ajax的方案比较成熟,局部刷新。
服务器端设置更新标志,每次都只是访问标志
只有服务器端数据更新了,才真的去取数据。如果非要"实时"数据的话,还是不要走http协议了。
还有并发性连接的问题,也不是问题了.现在很多服务器已经开始支持.具体你可以查一下资料.
?
ajax定时刷新实时性和效率自然和这个是没发比的.
还有并发性连接的问题,也不是问题了.现在很多服务器已经开始支持.具体你可以查一下资料.-----------------------------服务器软件支持,不代表硬件支持。
这种与服务器的长时间连接,本来就是对http的变态应用,只是应用于特定的场合,
ajax的实时性差点,这个是必然的,
效率,你怎么能说ajax的效率和这个没法比???
ajax采用定时刷新的方法。先考虑一下网络的问题。每次定时刷新都由客户端重新与服务器端建立一次新的连接和响应。
这个效率你自己可以算一算。是我建立一次连接,多次写数据效率高,还是每次客户端请求一次,服务器判断数据有没有变更在发送数据效率高。
连接我的有100万个客户端,而且每个一秒请求连接一次,这个效率应该很好算吧。
至于为什么不用flash和applet来做,自然也有原因的。现在的设计都是为了轻客户端,如果要是单位里面不能装插件的话,那不是不能浏览了吗。
硬件不是问题,这个的瓶颈在于软件的支持。你测试过的话自然有答案。
?
ajax的效率自然是和这个没法相比。这个不用测试就可以知道。
ajax采用定时刷新的方法。先考虑一下网络的问题。每次定时刷新都由客户端重新与服务器端建立一次新的连接和响应。
这个效率你自己可以算一算。是我建立一次连接,多次写数据效率高,还是每次客户端请求一次,服务器判断数据有没有变更在发送数据效率高。
连接我的有100万个客户端,而且每个一秒请求连接一次,这个效率应该很好算吧。
至于为什么不用flash和applet来做,自然也有原因的。现在的设计都是为了轻客户端,如果要是单位里面不能装插件的话,那不是不能浏览了吗。
硬件不是问题,这个的瓶颈在于软件的支持。你测试过的话自然有答案。-------------------------------------假设说有100万个用户,如果同时建立100万个长链接(这可以是没有断开的哟),你说你硬件没有问题????????