`
CalebIce
  • 浏览: 9899 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JWChat源码分析

阅读更多

工作需要仔细看了一下JWChar的源码
我对JavaScript并不熟悉,有分析和理解错误的地方,请朋友指教

首先是关于JWChat,一个用AJAX和html来实现的jabber客户端(我用jabber服务器实现是openfire),作为采用web形式开发的客户端,摒弃了C/S结构客户端的繁琐和使用上的不便。
JavaScript是客户端的核心技术。

慢慢逐一的介绍框架中js文件中每个方法的作用

  • config.js配置文件(TODO)
  • jsjac.js核心文件(是不是可以理解为J ava S cript Ja bber C ore)
  • 但不管怎么理解,它是客户端中最重要的部分。它的作用包括了处理和拼接xml信息
    1. 定义并初始化一些变量(配置)
    (todo)
  • Shared.js 可以共享的一些工具类,代码不多
    function getArgs()获取url中的参数
    function cutResource(aJID)从一个已给的jid中去掉resource部分
    function makeWindowName(wName)替换一些特殊符号成英文单词
    function htmlEnc(str)过滤html代码中的特殊符号有"&<>\"四个
    function msgFormat(msg)信息格式化,替换信息中的表情和urls
    function isValidJID(jid)验证jid的节点名是否包含如下非法的字符'"',' ','&','\'','/',':','<','>','@'
    function jab2date(ts)转换jabber返回来的时间戳成js日期对象
    function hrTime(ts)转换2004-08-13T12:07:04±02:00返回来的时间格式到一个人类可以阅读理解的格式
    function jabberDate(date)将js对象类型的时间转换为jabber的时间格式
  • browsercheck.js浏览器检查
    function BrowserCheck()只有一个方法用来检查浏览器生产商和特定版本,在方法外自动生成了一个名为is的BrowserCheck对象。
  • emoticons.js写明了表情的特殊符号与图片的对应关系,作用就是在做message内容过滤的时候将代表表情信息的特殊符号,转换为相应图片名称。
  • jabber_x_data.js只有两个方法
    function genJabberXDataReply(form)
    function genJabberXDataTable(x)根据传过来的对象x进行一些html代码的生成
  • pngfix.js
    从命名规则可以看得出,是为了有关png图片方面缺陷上的处理
    function correctPNG()正确的处理PNG图片在IE5.5或者更高版本中的透明度问题
    当中有onload=correctPNG(),也就是说在加载的时候就会自动执行
    其中有段代码的大小写大概是对进行一个替换,比如将onclick替换成onClick
  • roster.js从名字上看大概就是名单和组群方面功能的实现
    代码相对上面几个较多,(todo),todo了
  • sounds.js或许和声音有关吧(todo)
  • statusLed.js状态(todo)
  • switchStyle.js(转换类型,是转换在线状态吗?)
  • version.js版本,偷偷看了一下,内容很简单,就一句
    var VERSION="1.0beta3";

大概也就这些js文件。真要是从头看到尾,头还真疼。

第一步,我只是想它是怎么和jabber服务器(openfire)交互的,并且很好奇与服务器交互的核心代码在哪个js文件里)。在我看来,理解了这些,你又知道了在jsjac.js做了一些message发布和接受的处理(也就是对xml拼合和解析的过程),只要知道了如何和服务器交互,我想自己也可以实现一个简单的IM软件。因为openfire底层应用的是XMPP协议嘛,信息格式正确,问题就不大。

(todo)(这里忽略了一个问题,jwchat是一个web应用,它有它自己的web.xml配置,当中应用了servlet来接受请求再转发给jabber。

N分钟后

发现一个问题。在1.0版本的源码中包含api文档。似乎开发包有些不规范,为什么1.0b3版本里没有。

分享到:
评论
2 楼 langzhe 2011-06-28  
你好有幸看到你的文章。我想修改一下JWChat 把聊天登录等信息隐藏起来。应该主要看看那个JS
1 楼 onion8080 2010-01-28  
您好,我现在也在研究jwchat,不过我要重新实现一下,用extjs来做面板.
你的这篇文章写得很详细,看来研究的不错.
我们以后可以多交流交流.

相关推荐

    前端聊天 jwChat 源码

    前端聊天工具jwChat的源码分析与学习 在现代Web应用中,实时通信功能变得越来越重要,尤其在社交、协作和客户服务场景下。jwChat是一款专为前端设计的聊天软件,它的源码为我们提供了一个深入了解前端实时通信实现...

    jwchat源码

    JWChat源码 1、首先配置jwchat要具备的环境(我开发的环境) tomcat7.0 jdk1.7 openfire3.9.3 2.在网上查找下在jwchat.war文件,将其解压后放到tomcat目录下的webapps下 3.下载xalan的xalan.jar,serializer.jar, ...

    【JwChat极简聊天框组件 v0.2.48】基于Vue和ElementUI极简的聊天框组件+表情包功能+可自动匹配微信表情

    JwChat极简聊天框组件是一款基于Vue和ElementUI极简的聊天框组件。 软件包含了表情包功能,可自动匹配微信表情。还包含了聊天窗口配置组件,可以自由配置顶部状态栏和右侧信息栏。 JwChat安装: 使用 npm 安装 npm ...

    jwchat.rar

    《JWCHAT源码解析:构建基于JavaScript的Openfire Web聊天工具》 JWCHAT是一款基于JavaScript开发的开源Web聊天工具,它与Openfire服务器配合使用,为用户提供实时、交互式的在线聊天体验。通过深入理解JWCHAT的...

    jwchat 汉化源码基于openfire服务器端的

    jwchat汉化源码,基于openfire服务器端的,可以跑得通,直接将war格式文件导入到eclipse中即可。然后就可以应用了,注意jdk版本至少要1.5以上。

    利用jwchat搭建WebIM

    下载jwchat源码后,将其部署到Apache服务器的Web根目录下。 1. 解压缩jwchat文件,确保所有文件都在同一目录下。 2. 修改config.js配置文件,将服务器地址、端口、域名以及openfire的服务器地址和端口填入相应位置。...

    jwchat.war jwchat.war

    jwchat.war jwchat.war jwchat.war jwchat.war

    Jwchat+openfire部署

    - 获取Jwchat的源码或者预编译的包,确保与Openfire版本兼容。 - 修改Jwchat的配置文件,配置Openfire服务器地址、端口、服务器域名以及API密钥等信息。 - 如果需要,可以对Jwchat的主题、语言、权限等进行个性化...

    jwchat配置后的代码,经过测试可用

    3. **JWChat源码编译**: 获取JWChat的源代码后,使用标准的C/C++编译器进行编译。可能需要调整编译选项以适应你的环境,例如指定路径链接到XMPP服务器的库。 4. **配置文件修改**: JWChat的配置文件(通常是`config...

    JwChat极简聊天框组件 v1.1.1.zip

    源码源代码是开发人员进行二次开发的基础,JwChat的源代码提供了完全透明的实现细节,开发者可以根据需求对其进行定制和扩展。源代码的开放性使得用户能够深入理解其工作原理,解决在实际应用中遇到的问题,或者根据...

    jwchat修改过全部中文可以直接用

    标题"jwchat修改过全部中文可以直接用"表明这是一款名为jwchat的软件,经过了全面的汉化处理,用户下载后无需额外设置即可直接使用中文版。 描述中的"自己在下个openfire服务器,直接可以用"意味着jwchat可能与...

    jwchat-1.0beta3.zip

    3. **安全性**:作为开源软件,jwchat的代码公开透明,允许开发者对源码进行审查,确保了软件的安全性和隐私保护。此外,它可能还支持SSL加密,增强了数据传输的安全性。 4. **易用性**:jwchat的界面设计简洁直观...

    jwchat资料

    - **构建流程**:通过编译源码,将结果打包成WAR文件,其中包含了`WEB-INF`目录下的所有资源。 - **部署**:将WAR文件部署到支持Java Servlet容器(如Tomcat、Jetty等)上,容器会自动解析`WEB-INF/web.xml`并启动...

    JwChat极简聊天框组件 v1.1.0.zip

    JwChat极简聊天框组件 v1.1.0 是一款专为开发者设计的轻量级聊天界面解决方案,旨在提供快速集成、高度自定义以及流畅用户体验的聊天功能。这款组件适用于网页应用,可以帮助开发者轻松地在他们的项目中构建出美观且...

    openfire+jwchat

    3. **可扩展性**:Openfire允许开发者通过插件进行功能扩展,如集成其他服务、日志记录、统计分析等。 4. **多语言支持**:Openfire支持多种语言,便于全球用户使用。 5. **管理员工具**:强大的管理控制台让管理...

    jwchat-1.0.tar.gz

    《JWChat 1.0:打造实时通讯的Web客户端》 JWChat 1.0 是一个专为实现即时通讯功能而设计的Web客户端,它允许用户在浏览器上进行实时的消息交换,无需安装额外的桌面应用。这个开源项目不仅提高了沟通的便捷性,...

    整理了可运行的jwchat程序包

    【标题】"可运行的jwchat程序包"是一个整合了多个组件的软件包,旨在提供一个便捷的方式来运行jwchat聊天应用。这个程序包包含了jwchat本身,以及两个重要的依赖库——xalan和JabberHTTPBind。xalan是Apache组织开发...

    apache+jwchat原码,自己亲测试可用

    我们下载安装的是httpd-2.2.17-win32-x86-no_ssl.msi,安装完成后,我们需要配置一下,由于jwchat是用javacript去和openfire进行通讯的,所以他们之间的通讯是基于http的,但是由于浏览器为了安全性是不允许...

Global site tag (gtag.js) - Google Analytics