社区
Web 开发
帖子详情
servlet如何主动向客户端发消息(急)
xieyaa
2009-04-13 04:23:34
我现在做的这样一个方案,服务器是tomcat,servlet处理请求。一个客户端向servlet发送一个http请求,然后保持这个session不断,等待手机向servlet发送http请求,然后servlet处理,然后主动向客户端发送一个消息,告诉它应该执行什么程序。
我现在就想问一下,servlet怎么能主动向客户端发送这个消息。
...全文
1000
16
打赏
收藏
servlet如何主动向客户端发消息(急)
我现在做的这样一个方案,服务器是tomcat,servlet处理请求。一个客户端向servlet发送一个http请求,然后保持这个session不断,等待手机向servlet发送http请求,然后servlet处理,然后主动向客户端发送一个消息,告诉它应该执行什么程序。 我现在就想问一下,servlet怎么能主动向客户端发送这个消息。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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连接着,怎么会发送不了数据呢。
SpringBoot整合Tomcat WebSocket(附用户聊天Demo)
WebSocket 是一种网络通信协议。RFC6455定义了它的通信标准。WebSocket 是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。HTTP 协议是一种无状态的、无连接的、单向的应用层协议。它采用了请求/响应模型。通信请求只能由
客户端
发起,服务端对请求做出应答处理。这种通信模型有一个弊端: HTTP 协议无法实现服务器
主动
向
客户端
发起消息。这种单向请求的特点,注定了如果服务器有连续的状态变化,
客户端
要获知就非常麻烦。
Http
Servlet
Request对象方法的用法
Servlet
的运行过程 对于用户来讲,在
客户端
发起一次请求(比如说查询某类商品),到页面上显示出结果(比如查询到了n件商品,页面上显示了第一页的内容),对于用户来讲就是一次点击鼠标左键,但是在服务器,要做的可远不止一次点击这么简单,下面然我们来一起看下服务器都做了哪些操作。 首先,我们来看下面这张图: 从图中,我们可以看到,
客户端
的网络请求首先会被Http服务器接收(也叫Web服务器、web容器,其需要提供web应用运行所需的环境,接收
客户端
的Http请求); Web服务器根据请求的路径将请
Java使用websocket实现消息实时通知
java使用websocket实现消息实时通知,文章介绍了使用websocket和使用stomp协议两种方式
高薪
急
聘java开发工程师
Java高级程序员(2人)职位描述:参与并负责网站开发模块的设计、代码编程、调试、单元测试等工作,参与相关质量活动,确网站保项目设计及实现工作按时保质完成。职位描述:1、计算机相关专业本科毕业以上,英语四级以上,能熟练阅读英文文档;2、JAVA语言基础扎实,能够熟练使用JAVA语言进行编程,对门户网站开发有浓厚的兴趣;3、具备Java Bean、
Servlet
、JSP开发经验,能熟练应用Jbui
网络总结归纳(一)
一、cookie,session,token 二、get,post 三、tcp,udp 四、三次握手,四次挥手 五、网络7层 / 5层 结构
Web 开发
81,122
社区成员
341,744
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章