社区
Web 开发
帖子详情
servlet如何主动向客户端发消息(急)
xieyaa
2009-04-13 04:23:34
我现在做的这样一个方案,服务器是tomcat,servlet处理请求。一个客户端向servlet发送一个http请求,然后保持这个session不断,等待手机向servlet发送http请求,然后servlet处理,然后主动向客户端发送一个消息,告诉它应该执行什么程序。
我现在就想问一下,servlet怎么能主动向客户端发送这个消息。
...全文
1023
16
打赏
收藏
servlet如何主动向客户端发消息(急)
我现在做的这样一个方案,服务器是tomcat,servlet处理请求。一个客户端向servlet发送一个http请求,然后保持这个session不断,等待手机向servlet发送http请求,然后servlet处理,然后主动向客户端发送一个消息,告诉它应该执行什么程序。 我现在就想问一下,servlet怎么能主动向客户端发送这个消息。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
小霍夫
2009-04-15
打赏
举报
回复
12楼看清楚再说好不好..
第一句话那是我引用lz 的..
xieyaa
2009-04-15
打赏
举报
回复
关键是PC端是C#写的应用程序,不是web的,所以各位的方法不可行。我用了备用方法,就是服务器主动连接PC端,post过去一个请求。不算完美,但是能解决问题。
专业二三维GIS
2009-04-14
打赏
举报
回复
呵呵,我上贴批评的是9楼wolfKingTy,11楼的mengweilil不要见怪
专业二三维GIS
2009-04-14
打赏
举报
回复
楼上的不懂就别乱说.
http连接是一种短连接,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接. 也就是你提交请求到页面停止加载后就断开连接了,断开之后服务器是不可能向客户端发送任何数据的.
总之,采用http协议时,客户端是主动的,服务器端是完全被动的,没有客户端的请求就不会有数据传递.
所以,如我上面的贴子所说,楼主别想让服务器通过Servlet主动实时地发送数据,这是基本常识,死了这条心吧.
当然,你要实现实时给客户端发送信息的功能,所以变通一下采用其它方式:
1.客户端通过定时器以AJAX或类似的方式定时从服务器端获取消息,间隔时间短时效果看起来和实时的也没多大差别,只是比较费资源.
2.通过长连接实现,比如写一个Flash或其它ActiveX控件,与服务器建立长连接,这样服务器就可以主动发送消息给客户端了.
mengweilil
2009-04-14
打赏
举报
回复
据我所知,servlet不能push,不过。。。。。。。
xieyaa
2009-04-14
打赏
举报
回复
comet是针对客户端是网页的情况,我现在的情况是,客户端用C#做的,没办法用comet
小霍夫
2009-04-14
打赏
举报
回复
LZ 服务器跟客户端有一个session连接着,怎么会发送不了数据呢。
我看你对session都不是很了解o..哪个说的 服务器和客户端有 一个session边接着..
sessoin是三大作用域之一是在服务器上的.
lookupwtd
2009-04-14
打赏
举报
回复
用ajax发生请求,在服务器中部不要忙着响应,另外开启一个线程去等待手机发送请求。
让响应线程wait,直到手机发送请求(可以做个标识),可行性有多高我就不知道了。
bowlongcn
2009-04-13
打赏
举报
回复
comet可以实现你的想法。现在glassfish实现了这个功能。
tomcat的我还是试用成功。好像必须设置成nio模式后可行。(具体没试过)不过tomcat的文档上有写。
还有一个经过验证的方式就是我们自己实现的web服务器可以很简单的实现这样的功能。
连接上来后没收到消息等到有下行消息后就返回。但是连接保持时间不能超过60秒。
移动的网关有限制。超过时间后,网关会主动断开。
ben0759
2009-04-13
打赏
举报
回复
servlet是真的不可以的。不过,如果你用ajax向服务器发信息,可以通过计时器等方式实现这样的效果。
xieyaa
2009-04-13
打赏
举报
回复
没了?
真的没办法啦?
yusilong860815
2009-04-13
打赏
举报
回复
赞成ls的说法
专业二三维GIS
2009-04-13
打赏
举报
回复
servlet不可能主动向客户端推送信息,死了这条心吧
rtdb
2009-04-13
打赏
举报
回复
客户端可以定时向服务器端查询。
zzxiaoma
2009-04-13
打赏
举报
回复
根据我的了解他属于推技术,ajax可以实现拉技术,还不知道能不能实现推技术,好象ruby可以实现
xieyaa
2009-04-13
打赏
举报
回复
我在网上查到的资料都说是http协议是面向无连接的,有请求才有回应,回应之后就关闭了。不过我总感觉应该可以实现的,服务器跟客户端有一个session连接着,怎么会发送不了数据呢。
HTTP通信与
Servlet
技术详解及Android
客户端
实战
简介:HTTP是互联网应用最广泛的协议,基于请求-响应模型,用于实现
客户端
与服务器之间的数据传输;
Servlet
则是Java平台中处理HTTP请求的核心服务器端技术。本文结合PC服务端与Android
客户端
,深入讲解HTTP通信机制、
Servlet
接口的实现原理及其在实际项目中的应用。通过使用HttpURLConnection或OkHttp进行Android端网络请求,配合服务端
Servlet
处理GET/POST请求,并利用JSON完成数据交换,构建完整的前后端交互流程。
SpringBoot整合Tomcat WebSocket(附用户聊天Demo)
WebSocket 是一种网络通信协议。RFC6455定义了它的通信标准。WebSocket 是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。HTTP 协议是一种无状态的、无连接的、单向的应用层协议。它采用了请求/响应模型。通信请求只能由
客户端
发起,服务端对请求做出应答处理。这种通信模型有一个弊端: HTTP 协议无法实现服务器
主动
向
客户端
发起消息。这种单向请求的特点,注定了如果服务器有连续的状态变化,
客户端
要获知就非常麻烦。
Http
Servlet
Request对象方法的用法
Servlet
的运行过程 对于用户来讲,在
客户端
发起一次请求(比如说查询某类商品),到页面上显示出结果(比如查询到了n件商品,页面上显示了第一页的内容),对于用户来讲就是一次点击鼠标左键,但是在服务器,要做的可远不止一次点击这么简单,下面然我们来一起看下服务器都做了哪些操作。 首先,我们来看下面这张图: 从图中,我们可以看到,
客户端
的网络请求首先会被Http服务器接收(也叫Web服务器、web容器,其需要提供web应用运行所需的环境,接收
客户端
的Http请求); Web服务器根据请求的路径将请
基于HTML、JSP与JSF的
Servlet
基础实战示例
简介:
Servlet
是Java中用于扩展服务器功能的核心技术,主要用于处理HTTP请求并生成动态响应。本示例项目展示了
Servlet
与HTML、JSP(JavaServer Pages)和JSF(JavaServer Faces)的整合应用,涵盖Web开发中的关键组件与流程。通过该实践,开发者可掌握如何利用
Servlet
处理业务逻辑,结合JSP实现动态视图渲染,使用JSF构建组件化的企业级Web界面,并理解MVC架构下的前后端协作机制。
Java使用websocket实现消息实时通知
java使用websocket实现消息实时通知,文章介绍了使用websocket和使用stomp协议两种方式
Web 开发
81,116
社区成员
341,729
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章