社区
Web 开发
帖子详情
servlet如何主动向客户端发消息(急)
xieyaa
2009-04-13 04:23:34
我现在做的这样一个方案,服务器是tomcat,servlet处理请求。一个客户端向servlet发送一个http请求,然后保持这个session不断,等待手机向servlet发送http请求,然后servlet处理,然后主动向客户端发送一个消息,告诉它应该执行什么程序。
我现在就想问一下,servlet怎么能主动向客户端发送这个消息。
...全文
1072
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连接着,怎么会发送不了数据呢。
使用SSE协议进行服务端向
客户端
主动
发送消息
本文将介绍如何在Spring Boot框架中创建一个SSE配置类,实现服务端向
客户端
主动
发送消息的功能。
服务器连接微信
发消息
,微信小程序(一):微信小程序与服务器的简单连接
本文主要介绍微信小程序与服务器的连接问题。先讲解服务器部署,包括Tomcat容器、myeclipse编译环境,以及
servlet
和jsp的使用。接着以浏览器为
客户端
,向
servlet
发送请求进行测试。最后阐述小程序与服务器建立连接,以及服务器向
客户端
发送信息的具体实现方法。
openfire
servlet
插件
本文介绍如何在Openfire项目中通过
servlet
插件创建web接口,实现接收并处理HTTP请求的功能。具体步骤包括创建目录结构、配置插件类及
servlet
、编写核心处理逻辑等。
基于Android + Socket 的简易聊天Demo
本文介绍了一个使用Android和Socket实现的简易聊天应用Demo。通过界面设计、
客户端
逻辑处理和服务端逻辑来阐述如何创建一个能收
发消息
的聊天应用。
客户端
利用HttpURLConnection
主动
发送消息,使用Socket被动接收消息,并在界面上展示。服务端通过
Servlet
处理逻辑,使用IP记录登录者信息并转
发消息
。
(转)openfire插件开发(三)通过http方式向openfire
客户端
发信息
本文介绍如何通过HTTP方式而非XMPP协议,实现在不同
客户端
(如Android、Web)向Openfire服务器发送消息。主要步骤包括:创建并配置插件、实现
Servlet
和Component接口、注册
servlet
以及调整配置文件。
Web 开发
81,111
社区成员
341,726
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章