我不想刷新整个页面来获取数据,而且那样也依赖于定义的间隔时间,如果页面刚刷新完,服务端有个状态产即改变了,那么到下一次刷新,时间上就相差一个周期了,能不能使用某种技术进行监听服务器,比如socket

解决方案 »

  1.   

    这种想法是没错,可是我觉得B/s实现这个比较困难,再说b/s走的是HTTP的协议,你说的socket套结字是走TCP/IP的,如果你用c/s的,客户端是一个应用程序,而不是浏览器,应该可以实现实时数据更新,但是以我现在的感觉,b/s很难,jsp也很难。
      

  2.   

    那应该可以在web嵌入一个applet来实现,applet里可以再开辟一个线程来监听,如果发现有数据换则刷新所在页面的某个局部区域。
    不知可行不可行,但如果是这样,服务器和客户端各应该怎么样去实现,applet需要设定时间间隔去查询吗?
      

  3.   

    大家有没有注意到csdn论坛里的欢迎您:kypfos 可用分: 总信誉分: 注销我的登录这个栏目是用socket连接的
      

  4.   

    能提示一下应该去监听那些变化,或web上的applet能处理哪些事件,服务器和客户端应怎么配置能不能用xml相关技术来实现呢?
      

  5.   

    嘿嘿我怎么老是觉得jms合适。 :)
      

  6.   

    如果流量不是很大的话,用socket写这种东西似乎有点大材小用。
    利用网页定时局部更新的技术就完全可以实现。
      

  7.   

    使和jms要用soap吗?那么还要建立起webservice,像wsdl吗?
      

  8.   

    分不多,又加了30分,有了再加
    用jms怎么去实现推技术呢?服务端和客户端如何实现!!
      

  9.   

    回复人: kypfos(kypfos) ( ) 信誉:100  2003-7-24 14:59:55  得分:0 
       
    大家有没有注意到csdn论坛里的
    欢迎您:kypfos 可用分: 总信誉分: 注销我的登录
    这个栏目是用socket连接的 你看过CSDN网页的源代码了吗???
    注意下面一行:<meta http-equiv="Refresh" content="1000;URL=/expert/deeptree/contentbar.asp?myie=ie">
      

  10.   

    你是说1000秒刷新一次但是我看到过一次连接失败时,在那个位置上显示了socket连接失败的信息
      

  11.   

    我是初学者,现在公司里也要做一个类似的WEB页面的实时数据更新。楼上说的很多东西我都不明白,能不能说的详细些?
      

  12.   

    jms 和 推是两个概念 
    感觉jms合适点 大致上来说就是在数据改动的时候发布消息 web上的applet收到后重绘图形
      

  13.   

    怎么说,applet与服务器之间要有一个永久连接
    jms发布的消息之后,applet通过什么来监听呢?
    如果是socket来连接客户端applet可以时时检测输入缓冲有没有数据来更新
    若是别的通信息方式呢?rtsp协议在这里又是一个新鲜的玩艺儿
    用rtsp有什么好的实现呢
      

  14.   

    applet 只需要实现messagelistener接口,订阅相关主题就能自动收到相应消息。数据改动时发布此主题,在论坛里搜索jms相关内容,有很多例子。
      

  15.   

    问楼上,如果使用jms,服务器应是怎么样的软件配置呢?
      

  16.   

    jms根本不是解决这种问题的。
      

  17.   

    可以通过什么方式建立web页面到web服务器的永久连接呢
      

  18.   

    http://expert.csdn.net/Expert/topic/1925/1925211.xml?temp=.2373773
      

  19.   

    作股票行情的话,可以上国泰君安 或者申银万国 等证券网站去看 他们用了新利多的一个applet 从华鑫证券网上能够下到applet的class文件,自己分析一下就可以咯新利多做的还可以 5秒钟刷新一次
      

  20.   

    kypfos(kypfos)http只是一个协议,建立在socket之上的一个协议而已
      

  21.   

    wyzh(wyzh) 那jms是解决什么问题的呢如果用jms 可以选tomcat + OpenJMS用jms 不用老是去查数据库只是收到数据改变的消息才去查询 修改数据库的程序负责在更改数据后发布这个消息
    定时去刷数据库是很笨的做法
      

  22.   

    lcfgaoyong(云邪者) 
    多谢你的提醒,想到K线图早就应该到各证券公司的网站参考参考的再问问大家,如果是采用socket建立连接是不是对于每个连接的客户,在服务器端都要产生一个线程来接管,单独控制相应通道的输入输出流呢?
      

  23.   

    可以用线程池调度,如果服务器端不用java开发的话,可以用select 另外rtsp协议,我觉得也是不错的选择,他可以传输自定义格式的实时数据(底层一般需要RTP协议),如同实况转播一样,而单纯用TCP保持实时性就困难一些。
    用JMF就可以实现
      

  24.   

    我曾经做个一个简单的rtsp server,再用applet做一个rtsp client就可以了
      

  25.   

    小淫贼
    JMF又是什么呢?
    rtsp server怎么去实现啊,我只知道rtsp,用在媒体播放,实现实时流媒体的,用rtsp客户端需要用播放器吗?客户端的rtsp client有些什么要求呢?
    能不能发些示例代码给我啊,万分感谢!
    [email protected]
      

  26.   

    用applet就可以了,和服务器使用udp通信。
      

  27.   

    jmf曰java media frame
    rtsp协议有相关的若干rfc,实际上他是建立实时传输的机制,建立在rtp/rtcp协议中,jmf实现了rtp/rtcp和rtsp的客户端,一般的流媒体播放软件都可以当 RTSP客户端,如real player,quicktime player ,和jmf自带的JMStudio。但是这些工具只能播放给定格式的数据,如mpeg,mp3,mov等等。
    如果需要自定格式,需要从rtp协议来实现,用JMF就可以实现的一个RTSP CLIENT,可以作为applet实现从而可以在网上浏览,原理就是这样。
      

  28.   

    至于楼上的楼所说的,用udp进行通信,那是一种无连接的。对于客户端向服务端发送信息是可以的,因为服务端打开的端口是已知道,那么服务器要广播消息到客户端呢?客户端的端口可以统一设定吗(全设为统一的值难免会有端口冲突而不能分配),那客户端的地址又是什么呢?服务器怎么知道需要发送消息到那些地方呢?rtsp建立起的就是一种永久性的连接,采用客户端一直播放服务器端的连续数据变化。听说著名的QQ就是靠UDP来发送信息的,不知它的原理是怎么样的
      

  29.   

    rtsp协议的传输层协议可以是连接的,也可以是无连接的,最长使用的是rtp/udp,就是 基于udp的rtp/rtcp协议,是无连接的。rtp/rtcp的作用是保持数据的实时性。
      

  30.   

    那是不是要在服务器新开端口进行基于rtsp的通信
      

  31.   

    是不是就是用applet实时播放服务器的自定义数据 类似播放rel等的流
      

  32.   

    是不是就是用applet实时播放服务器的自定义数据 类似播放rel等的流
      

  33.   

    我听别人说过可以纠住response不放,不断的往里面写数据,就可以实现实时更新。
      

  34.   

    最反对的两种方法就是
    1、刷新
    2、Response 一直阻塞
    这两种方法以前被很多不太懂技术细节的人尊为“推技术”——很多都是搞ASP的楼上有朋友说得好,如果不用1/2,需要用applet做一个client,至于具体用什么协议,协议中是否用XML就随意了。我补充另外一个比较方便的实现方法:Java用来做Server获取数据并侦听端口
    Flash代替Applet,用Flash5以后就有的 XMLSocket 访问 java做的server获取数据并显示。呵呵,要注意的是 XMLSocket 能接收的数据结尾必须有一个'\0'作为标记。
    我给几个玩flash的朋友写了一个Server用来做flash游戏,另外做了一个proxy server用来和其它socket应用的server通讯,实现GUI比applet简单。
      

  35.   

    对了,楼上朋友说 rtsp 可以用tcp方式连接。但如果用tcp方式如何保证数据实时性?
    udp方式下,由于数据报文是不连续的,所以接收端可以根据时间标签丢弃错序的数据牺牲质量保证实时性。而TCP方式下由于TCP自己的容错导致接收端能确保收到每一份数据,但延时已经不由接收端控制。即便进行丢包处理也只能降低影响而已。对不起,我对RTSP不是很熟悉,也许我说的不对。至于“著名”的QQ用udp一点儿也不奇怪。凡是面向大量的socket连接的服务器,采用udp方式其负载能力能做得比较高(tcp一次连接三次握手,外加连接过程中的冗余处理)。
    坚持使用TCP方式的“著名”的聊天协议主要是 RFC1459 即 IRC 协议(在一台普通的服务器上,我测试过的也就1万多连接不到)。
    有的应用决定了必须使用udp方式,尤其realtimefight和firstpersonshoot,还有语音/视频会议,但很多rpg游戏还是用tcp的较多。