在一个已正在运行的Applet与Servelt通信的WEB系统中,假如中途某APPLET客户端向Servelt服务器发送了一些请求,该Servelt接收请求并处理后,需要将该信息广播至所有的APPLET客户端,那么这些已经运行了的APPLET客户端如何获取到Servelt发过来的消息?难道非要重新刷新整个APPLET嘛?

解决方案 »

  1.   

    这我是知道的。但是关键是如何动态的获知啊。也就是如何知道何时去“URLConnection”一下。
      

  2.   

    只要让Applet重新向Servlet发送HTTP请求就可以了。
    类似于Ajax
      

  3.   

    好像只能让所有的applet轮询吧?
      

  4.   

    让Applet重新向Servlet发送HTTP请求?
    关键是这些客户端的APPLET已经成功下载并正在运行了,就在运行的某个时刻,服务器突然接收到了其中一个APPLET来的消息,然后需要立即转发至其他所有APPLET,那么这个突然从服务器端来的消息这些APPLET如何知道呢?
      

  5.   

    我觉得想实现这个功能可能会比较麻烦HTTP协议是基于请求/响应的工作模式,无状态、无连接
    因此有哪些客户端连接到了服务器也是不知道的,因此也就无法主动和客户端通信
    如果仍然是使用Servlet通信的话,必须是Applet的下一次请求之后,才能将消息返回。所以,要么是用Applet每隔一段时间就和Servlet通信一次
    要么是让Applet开一个Socket
      

  6.   

    while(true)
    {
        //向服务器提出连接请求
        XXXX();    try {
    Thread.sleep(2000); 
    } catch (InterruptedException e) 
            {}
    }
    这样做可以吧?有没有什么弊端?