servlet与socket怎么长连接并发送消息

tangsmarth 2015-04-10 11:57:53
现在公司一呼叫中心项目,用delphi做服务端调用语音平台,java做客户端,坐席一旦登陆后建立一个socket连接,现在是怎样保证这个socket与当前用户关联,难道也写入session中?关联之后一旦有来电服务端发送消息过来时,怎样接收到这个请求再弹屏显示给用户?看到有人说用applet能够处理socket,但如果applet获取到消息后能够生成ajax请求吗?就是来电弹屏了。
...全文
228 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangsmarth 2015-04-10
  • 打赏
  • 举报
回复
引用 1 楼 defonds 的回复:
applet 可以发 http 请求到服务端
多谢版主,想把applet做一个隐藏域用,不显示他,只有当有消息时就发送http请求,或者调用页面一个方法,不知道这样处理的方式合不合理?
tangsmarth 2015-04-10
  • 打赏
  • 举报
回复
多谢版主,想把applet做一个隐藏域用,不显示他,只有当有消息时就发送http请求,或者调用页面一个方法,不知道这样处理的方式合不合理?
Defonds 2015-04-10
  • 打赏
  • 举报
回复
applet 可以发 http 请求到服务端
冥王之锤 2015-04-10
  • 打赏
  • 举报
回复
引用 12 楼 tangsmarth 的回复:
[quote=引用 11 楼 t_jl1979 的回复:] 有几个解决方案。 方案1,不使用web,直接纯java客户端,socket连接,登录后保留连接句柄作为标志。 方案2,使用web,写一个web服务器连接dephi,web不直接与dephi通信,而是与web服务器,信息保存在session中。
java做一个socket服务端连接delphi的socket服务端,然后用户客户端的请求其实是请求的web服务端,然后通过web服务器再去和delphi服务器建立连接?是这个意思吗?[/quote] 是的。
tianfang 2015-04-10
  • 打赏
  • 举报
回复
需求描述很不清楚: 现在公司一呼叫中心项目,用delphi做服务端调用语音平台:所有业务管理都是delphi实现?还是仅仅语音平台?打入/打出电话?对外提供哪些接口? java做客户端:CS模式客户端还是BS模式?CS模式为什么不一起都用delphi,BS模式客户端也不是java 坐席一旦登陆后:这里应该是登录,登录到哪里,座席面对什么软件?登录到哪里? 建立一个socket连接:谁对delphi服务端的socket连接? 现在是怎样保证这个socket与当前用户关联,难道也写入session中?登录到哪里没有解决 关联之后一旦有来电服务端发送消息过来时,怎样接收到这个请求再弹屏显示给用户? BS还是CS? 看到有人说用applet能够处理socket,但如果applet获取到消息后能够生成ajax请求吗?就是来电弹屏了。j
tangsmarth 2015-04-10
  • 打赏
  • 举报
回复
引用 11 楼 t_jl1979 的回复:
有几个解决方案。 方案1,不使用web,直接纯java客户端,socket连接,登录后保留连接句柄作为标志。 方案2,使用web,写一个web服务器连接dephi,web不直接与dephi通信,而是与web服务器,信息保存在session中。
java做一个socket服务端连接delphi的socket服务端,然后用户客户端的请求其实是请求的web服务端,然后通过web服务器再去和delphi服务器建立连接?是这个意思吗?
冥王之锤 2015-04-10
  • 打赏
  • 举报
回复
有几个解决方案。 方案1,不使用web,直接纯java客户端,socket连接,登录后保留连接句柄作为标志。 方案2,使用web,写一个web服务器连接dephi,web不直接与dephi通信,而是与web服务器,信息保存在session中。
suciver 2015-04-10
  • 打赏
  • 举报
回复
引用 8 楼 tangsmarth 的回复:
恩,现在我已经设置了setKeepAlive为true,但如果及时消息发过来了后怎么转发这个servlet请求
长连接不只是设置setKeepAlive为true这么简单,tomcat官网上有这个的使用说明,有个专门的接口叫什么我也忘了,楼主可以上官网也可以google下它的使用,里面可以做你的业务逻辑
suciver 2015-04-10
  • 打赏
  • 举报
回复
引用 8 楼 tangsmarth 的回复:
你可以使用长连接
恩,现在我已经设置了setKeepAlive为true,但如果及时消息发过来了后怎么转发这个servlet请求[/quote] 长连接不只是设置setKeepAlive为true这么简单,tomcat官网上有这个的使用说明,有个专门的接口叫什么我也忘了,楼主可以上官网也可以google下它的使用,里面可以做你的业务逻辑
tangsmarth 2015-04-10
  • 打赏
  • 举报
回复
引用 7 楼 suciver 的回复:
[quote=引用 6 楼 tangsmarth 的回复:] [quote=引用 5 楼 suciver 的回复:] applet在web上不靠谱,这个需要每个客户机都要装jvm而且applet安全性问题早就被许多浏览器抛弃了.无非是拉取模式和推送模式. 拉取模式就是把消息放入一个暂存地,页面不断ajax取数,推模式可以使用tomcat或者其他web容器提供的长连接,这个tomcat的例子中有
现在遇到的问题就是如果不用applet,怎么让用户登陆后获取socket及时发过来的信息,然后根据这个信息去调用servlet,不知道java有没有这一块的相关解决方案[/quote] 你可以使用长连接[/quote]恩,现在我已经设置了setKeepAlive为true,但如果及时消息发过来了后怎么转发这个servlet请求
suciver 2015-04-10
  • 打赏
  • 举报
回复
引用 6 楼 tangsmarth 的回复:
[quote=引用 5 楼 suciver 的回复:] applet在web上不靠谱,这个需要每个客户机都要装jvm而且applet安全性问题早就被许多浏览器抛弃了.无非是拉取模式和推送模式. 拉取模式就是把消息放入一个暂存地,页面不断ajax取数,推模式可以使用tomcat或者其他web容器提供的长连接,这个tomcat的例子中有
现在遇到的问题就是如果不用applet,怎么让用户登陆后获取socket及时发过来的信息,然后根据这个信息去调用servlet,不知道java有没有这一块的相关解决方案[/quote] 你可以使用长连接
tangsmarth 2015-04-10
  • 打赏
  • 举报
回复
引用 5 楼 suciver 的回复:
applet在web上不靠谱,这个需要每个客户机都要装jvm而且applet安全性问题早就被许多浏览器抛弃了.无非是拉取模式和推送模式. 拉取模式就是把消息放入一个暂存地,页面不断ajax取数,推模式可以使用tomcat或者其他web容器提供的长连接,这个tomcat的例子中有
现在遇到的问题就是如果不用applet,怎么让用户登陆后获取socket及时发过来的信息,然后根据这个信息去调用servlet,不知道java有没有这一块的相关解决方案
suciver 2015-04-10
  • 打赏
  • 举报
回复
applet在web上不靠谱,这个需要每个客户机都要装jvm而且applet安全性问题早就被许多浏览器抛弃了.无非是拉取模式和推送模式. 拉取模式就是把消息放入一个暂存地,页面不断ajax取数,推模式可以使用tomcat或者其他web容器提供的长连接,这个tomcat的例子中有
Defonds 2015-04-10
  • 打赏
  • 举报
回复
看上去合理。你先实现功能吧。 有一些细节需要注意,比如 applet 接受 socket,发送 http;比如 applet 调用 js 代码,或者 js 调用 applet 的方法。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧