工作需要仔细看了一下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信息
- 定义并初始化一些变量(配置)
(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版本里没有。
分享到:
相关推荐
前端聊天工具jwChat的源码分析与学习 在现代Web应用中,实时通信功能变得越来越重要,尤其在社交、协作和客户服务场景下。jwChat是一款专为前端设计的聊天软件,它的源码为我们提供了一个深入了解前端实时通信实现...
源码源代码是开发人员进行二次开发的基础,JwChat的源代码提供了完全透明的实现细节,开发者可以根据需求对其进行定制和扩展。源代码的开放性使得用户能够深入理解其工作原理,解决在实际应用中遇到的问题,或者根据...
开发者和IT爱好者可以通过分析源码,进一步了解其工作原理,甚至对其进行定制和扩展。 总的来说,JWChat 1.0 Beta 3是一款集成了Ajax技术和Jabber协议的即时通讯工具,具备了现代聊天应用的基本功能,并且能够灵活...
【标签】"源码 工具"表明这个压缩包可能包含这两部分的内容:Openfire和JWChat的源代码以及可能用到的一些辅助工具。源码对于开发者来说非常重要,因为它允许他们深入理解系统的运作机制,并可以根据需要进行定制和...
源码分析有助于理解系统的内部工作原理,而工具的使用则可能涵盖了开发、调试、部署等方面。 从压缩包内的文件名称来看,我们有两个文件: 1. "jwchat部署问题和解决方法.doc":这个文档很可能详述了JWChat(一个...