需求是需要在页面刷新某些数据,但数据是从导航仪终端经Socket传到C++Server上,我在Tomcat里用S2SH项目的架构,我设计2个方案:
1,用Ajax请求,Tomcat分配一个线程处理请求,在这个线程上去访问C++socket服务,取数据返回,这样只能用短连接,每次关闭socket,而Ajax可能需要没1S 秒发送一个请求?这样页面显示是否会很慢?
2,在Tomcat的S2SH项目启动时,在Servlet 的init()里启动一个Socket(Client)线程,长连接C++ServerSocket,这样页面的Ajax请求线程需要和Socket(Client)线程 访问同步的数据,是做一个线程安全的队列,来彼此通讯数据?
求解,有巨匠高人有好的建议不?或有类似的Tomcat内取C++ServerSocket项目经验?
1,用Ajax请求,Tomcat分配一个线程处理请求,在这个线程上去访问C++socket服务,取数据返回,这样只能用短连接,每次关闭socket,而Ajax可能需要没1S 秒发送一个请求?这样页面显示是否会很慢?
2,在Tomcat的S2SH项目启动时,在Servlet 的init()里启动一个Socket(Client)线程,长连接C++ServerSocket,这样页面的Ajax请求线程需要和Socket(Client)线程 访问同步的数据,是做一个线程安全的队列,来彼此通讯数据?
求解,有巨匠高人有好的建议不?或有类似的Tomcat内取C++ServerSocket项目经验?
或者,servlet完成请求了,线程还没完,算怎么回事
Comet 服务器推送数据,在浏览器端需要什么技术,能用IP找到这个浏览器,定时的用类似Ajax异步的推送数据吗?
“服务器推”技术在现实应用中有一些解决方案,本文将这些解决方案分为两类:一类需要在浏览器端安装插件,基于套接口传送信息,或是使用 RMI、CORBA 进行远程调用;而另一类则无须浏览器安装任何插件、基于 HTTP 长连接。长见识了,这样才能真正解决问题,
我得需求是要在google地图上,动态可以有延时的显示导航仪(也就是装了导航仪的汽车的位子)。如果需要浏览器发送请求,请求频繁,Tomcat也无法及时处理返回,并且导航仪GPS点信息变更是在服务器端触发的,浏览器无法知道,只能不停的刷新请求。
wang12
(EricWang)
你有这种技术现实的经验不? 在tomcat服务器上能使用不?
Pushlet是Java版的comet实现:在Servlet机制下,数据从server端的Java对象直接推送(push)到(动态)HTML页面。无需任何插件帮助。你可以查找一些资料,绝对是不二选择。
Java消息服务(JMS)应用程序结构支持两种模型:
点对点或队列模型
发布者/订阅者模型
我理解,你的需求模型为第二种:服务器端将消息推送给多个客户端。
具体的JMS介绍可参阅
http://www.baidu.com/s?bs=JMS+jboss&f=8&rsv_bp=1&wd=JMS&inputT=1938