`
nicegege
  • 浏览: 580323 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

学习jsSocket实现后台向前台发送实时消息

阅读更多

之前在做客户管理系统的时候,客户经常给我们提出实施通讯的需求。当时,我们讨论出的方案是客户端间隔时间发送请求,访问服务器的应用,如果状态改变,则弹出消息给用户显示。

今天,在隐心技术论坛上发现一片帖子,作者是高手,使用js+flex+java开发实施通信socket。

Js+Flex+Java模拟的JsSocket组件使用说明

说明:图片、附件都需要登陆才能查看和下载,若没有注册请先注册账号再登陆即可。

JsSocket

      演示地址1    演示地址2    隐聊 <----
    应大家要求,现已将演示项目“隐聊”开源共享,代码共享地址:
    TaoCode svnhttp://code.taobao.org/svn/yisin-webchat/  若没有账号,请自己去注册。
开源中国OSC svn:

  1. svn://git.oschina.net/yisin/webchat
复制代码



JsSocket 是使用js + flex + java开发的一套基于websocket通信组件,开发服务器消息推送的最佳选择

主要解决大家在开发web项目时需要用到前台与后台时时通信时的问题,除了HTML5WebSocket之外,之前大家使用的方法一般为:1、页面间断刷新;2、使用ajax间断发送请求;3、使用DWR框架的comet长连接模拟实现,缺点大家都心知肚明

最新的HTML5WebSocket,虽然很好的解决了这一问题,但IE9及以下版本不兼容HTML5,即不能使用WebSocket来达到目的,本组件因使用的 js + flex,几乎可以兼容所有浏览器,具体使用方法如下介绍

一、后台:

1、导入jar包:JsSocket.jar

2、写一个类SocketClient.java继承 com.yinsin.method.CallBack.java类,此类主要是用来处理客户端收发请求的,示例代码如下:

在这3个方法当中可以做你任何想做的事情

3、可以在web服务启动时,开启JsSocket服务:

a.web.xml中配置web服务启动监听器

<listener>

<listener-class>com.yinsin.frame.init.InitCustomData</listener-class>

</listener>

b.InitCustomDatacontextInitialized方法中开启JsSocket服务

/** 接收两个参数,第1个参数未端口,第2个参数为CallBack.java的子类 */

TcpServerSocket.getInstance().startServer(10000,new SocketClient());

4、最后启动web服务,若控制台输出了“JsSocket # TCP Socket Server Started!”,即代表完成了搭建JsSocket的后台服务了。

 

二、前端

1、将所需要的flash资源文件导入到项目中,目录结构为:script/JsSocket/JsSocket.swfscript/JsSocket/playerProductInstall.swf,将此目录放到WebContent或者WebRoot下即可。

2、需要用到JsSocket的页面需要加载下组件所需要的代码:

<span><%=com.yinsin.util.CodeLoader.loaderCode(request.getContextPath())
%></span>

3js调用初始化函数,初始化组件,连接服务器:

4、向服务器发送消息:

yinsin.sendData('Hello World!');



5、服务器向前端推送消息(补充):
      sendDataToClient(Socket, String);
    在SocketClient类中,调用此方法即可

 

本文章是转载文章,原文在隐心技术论坛http://yisin.88448.com/viewthread.php?tid=39949

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics