`

使用openfire+jwchat来构建类似于商务通的即时在线沟通的技术实现

阅读更多
      Jabber 是著名的即时通讯服务服务器,它是一个自由开源软件,能让用户自己架即时通讯服务器,可以在Internet上应用,也可以在局域网中应用。
    XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。 这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。XMPP的技术来自于Jabber,其实它是 Jabber的核心协定,所以XMPP有时被误称为Jabber协议。Jabber是一个基于XMPP协议的IM应用,除Jabber之外,XMPP还支 持很多应用。
  Jabber服务软件有很多,具体可以参考jabber官方网站的列表:
Jabber官网地址:http://www.jabber.org/
常用Jabber服务器软件:http://www.jabber.org/software/servers.shtml其中最为方便安装搭建的无疑是Openfire(Wildfire),一款基于GPL协议开源软件,Openfire有linux、windows和MAC的不同版本,软件需要java环境支持,不过软件本身自带了环境包,你可以根据你的需要下载不同的版本。
下载地址:http://www.igniterealtime.org/downloads/index.jsp#openfire
  更详细的安装配制 可以参考网页:[url=http://blog.csdn.net/expendable/archive/2007/06/25/1666122.aspx]基于开源jabber(XMPP)架设内部即时通讯服务的解决方案[/url]

    JWChat是一个功能强大,基于Web的Jabber™客户端。采用AJAX技术开发,这个客户端只用到了JavaScript与HTML。它具备基本的jabber即时消息功能,用户管理,基于MUC协议的群聊天功能。
    参考图如下:
   [jwchat

    我的初步设想是通过用户的Ip,再通过一个转换器,也就是[url=http://wt.fwvv.net/fwdowns/2007/04011/zhcxip-access-2007-03.rar]

中华查询网IP数据库Access版

[/url]转换成其真正的用户,然后在服务器端一个一个的增加这样的用户,当然也可以不增加,让每一个登录的新用户默认的有几个组员,也就是本网站的网络支持者.开始会话.

      jwchat基本是使用js来完成所有会话的功能,其实,使用dwr或者 ajax4jsf一样的ajax工具会实现比他还丰富可定制的会谈信息,各位看客有了解商务通的技术实现方案吗?欢迎讨论.我一般看到的是PHP或者asp版的.呵呵.
   
分享到:
评论
13 楼 cloudfile 2012-12-17  
谢谢分享!
12 楼 jiahx 2008-06-03  
楼上只说了在线消息的发送代码,我想知道:

离线消息是怎么保存的呢?
11 楼 ayeah 2008-05-09  
ajax都存在一个跨域的问题,看apache是用url rewrite解决的,不知道用iis有什么解决方法?
10 楼 zhourenjian 2007-11-30  
截图如下:
9 楼 zhourenjian 2007-11-30  
另外提供一套开源框架作为此类Web IM开发的参考:
Java2Script + Smack + Jabber (Gtalk)

示范例子(google talk是基于Jabber的XMPP协议的):
http://demo.java2script.org/gtalk/

其中Java2Script,提供用Java + Eclipse SWT的开发RIA的开发环境:
http://j2s.sourceforge.net/

Smack,提供基于Jabber XMPP协议的Java类库:
http://www.igniterealtime.org/projects/smack/index.jsp

Java2Script Gtalk,提供Java + SWT的桌面版gtalk客户端,可以编译为基于JavaScript + HTML + CSS的Rich Internet Application:
http://demo.java2script.org/gtalk/

8 楼 jiahang8195 2007-11-29  
前阵子也做了一个jwchat的改造工作,实现的是网站访客从web页面点击聊天按钮后直接跟管理员交流,感觉jwchat做的确实很好,不过发现个问题,使用ie的时候很容易导致页面死掉,不知是何缘故
7 楼 tangdinghua 2007-11-28  
如果我把OPENFIRE布署到另外一台机器上。。是否会存在跨域的问题
6 楼 tangdinghua 2007-11-02  
我想请问一下,怎么获得服务器的httpBase.十分感激。。
5 楼 outrace 2007-09-25  
直接使用flex写客户端会更好
4 楼 fredzhang 2007-09-25  
yafamato什么东东?google上无此单词
smark应当是sparkweb吧,但不开源
claros支持xep-0124吗?
3 楼 sp42 2007-09-25  
关注中,楼主加油^_^
2 楼 heweiya 2007-09-25  
继续:
我考察一下jwchat的源代码,其实就是js的OO方法组织的程序代码,颇有几分零乱,细心研究后,感觉作者对JS的OO发挥的真是不错.但是又感觉分层的结构不是很明确.而且我还想操作底层的数据库,N,我试着加入一些DWR的代码.折腾了一个上午,中午吃饭后,又感觉这样的东东安全性不够,所以呀,又停止了开始.
陷入了沉思.我又在想使用a4j来组建这个会话,而且也可以从底层调用一些东东.呵呵,又开始了.
真的感觉到JSF的强大了.
1 楼 heweiya 2007-09-24  
近期学习总结:快速学习方法。
从开源代码那里了解到有四种代码可以参考:
1、jwchat
2、claros chat
3、yafamato
4、smark
其中jwchat单纯使用js,使用json来做AJAX实现。
smark是openfire的客户端,很多人都在使用它。
其中yafamato就是在他上面的WEB扩展,并且使用struts技术。
claros chat使用yui做为页面布局的扩展,主要使用js,另外使用servelt编程。呵呵
今天就研究到这里,
附一些代码:
ConnectionConfiguration config = new ConnectionConfiguration("localhost", 5222);
		XMPPConnection conn2 = new XMPPConnection(config);		
		conn2.connect();
		conn2.login("mimi", "mimi");		
		Chat newChat = conn2.getChatManager().createChat("admin@127.0.0.1",new MessageListener(){
			public void processMessage(Chat chat, Message message) {
		        System.out.println("Received message: " + message+message.getBody());
		        message.setProperty("favoriteColor", "blue");
		    }
		});
		
		
		try {
		    newChat.sendMessage("你好,朋友!");
		}
		catch (XMPPException e) {
		    System.out.println("Error Delivering block");
		}

相关推荐

    基于openfire + jwchat 的 WEB IM

    【标题】"基于openfire + jwchat 的 WEB IM"是一个集成项目,旨在实现一个基于网页的即时通讯(IM)系统。在这个系统中,Openfire作为服务器端的即时通讯平台,而jwchat则作为客户端的JavaScript库,两者结合提供了...

    openfire+jwchat

    "Openfire+jwchat"是一个基于Web的即时通讯(IM)解决方案,它结合了Openfire服务器和jwchat客户端来实现高效、安全的在线聊天功能。以下是对这个系统的详细解析: **Openfire**: Openfire是一款开源、基于XMPP...

    openfire + jwchat 的 WEB IM

    【标题】"openfire + jwchat 的 WEB IM" 是一种基于开源技术构建的即时通讯解决方案,它结合了Openfire服务器和JWChat客户端来提供Web端的聊天功能。Openfire是一款基于XMPP协议的实时协作服务器,而JWChat则是一个...

    openfire+asmack中文api+androidDemo

    【标题】"openfire+asmack中文api+androidDemo"涉及的是即时通讯(Instant Messaging, IM)技术在Android平台上的实现。Openfire是一款开源的XMPP服务器,而ASMACK是针对Android平台的XMPP库,它允许开发者在Android...

    Jwchat+openfire部署

    首先,Jwchat是一款基于Web的即时通讯(IM)软件,它提供了丰富的功能,如文本聊天、文件传输、音视频通话等,适用于企业内部沟通、在线教育、客服系统等多种场景。Jwchat的特点在于其轻量级设计和良好的跨平台兼容...

    openfire+spark+smack

    Openfire、Spark和Smack是三个与XMPP(Extensible Messaging and Presence Protocol)相关的开源项目,它们在构建即时通讯(IM)系统中扮演着重要角色。XMPP是一种基于XML的网络协议,主要用于实时通讯,包括消息...

    OpenFire+smack3.0.4 即时通讯Demo

    总的来说,“OpenFire+smack3.0.4 即时通讯Demo”是一个实践性的学习资源,帮助开发者快速上手XMPP即时通讯系统,同时也为他们提供了进一步研究和定制的基础。通过深入研究和改造这个Demo,开发者可以创建出满足特定...

    用Openfire+Rooyee架设自己的即时聊天服务器

    本文将详细讲解如何使用Openfire和Rooyee来构建自己的即时聊天服务器,帮助新手快速上手。 首先,Openfire是一款开源、基于Java的XMPP(Extensible Messaging and Presence Protocol)服务器。XMPP是一种实时通信...

    openfire+smack即时通讯

    综上所述,建立一个"openfire+smack即时通讯"系统涉及的主要技术点有XMPP协议的使用、Openfire服务器的部署与配置、Smack库的集成开发以及客户端的UI设计和功能实现。开发者需要熟悉Java编程,理解XMPP的工作原理,...

    openfire+spark+smack开发流程.pdf

    "OpenFire+Spark+Smack开发流程" 在本文中,我们将详细介绍OpenFire、Spark和Smack三个组件在XMPP IM开发中的作用,以及如何使用它们来开发一个完整的XMPP IM系统。 首先,让我们了解一下XMPP是什么?Extensible ...

    openfire+spark+sparkweb

    【Openfire、Spark和SparkWeb】是一套开源的即时通讯解决方案,主要由Openfire服务器、Spark客户端和SparkWeb网页客户端组成。Openfire是基于XMPP协议的服务器,它提供了聊天、会议、文件传输等实时通信功能。Spark...

    openfire+smack开发webim笔记

    【标题】:“openfire+smack开发webim笔记”涉及的知识点详解 【一】XMPP(可扩展消息处理现场协议) XMPP是一种基于XML的即时通讯协议,它最初源于Jabber项目,用于实现服务器之间的即时消息传递和在线状态探测。...

    Android AdXmpp(Openfire+asmack+spark)即时通信.zip

    在这个项目中,开发者使用了这些开源工具来构建一个功能丰富的移动通信应用。以下是对这些关键组件的详细解释: 1. **Openfire**:Openfire是一款开源、跨平台的XMPP服务器。XMPP(Extensible Messaging and ...

    利用jwchat搭建WebIM

    【标题】"利用jwchat搭建WebIM"的实践指南 在互联网通信领域,Web即时通讯(WebIM)已经成为一种不可或缺的功能,它使得...同时,这样的系统适用于企业内部沟通、在线客服、教育平台等多种场景,具有很高的实用价值。

    openfire + spark 视频通话 war包和jar包

    总的来说,Openfire和Spark的视频通话功能的启用,是通过将特定的插件文件部署到服务器和客户端的插件目录下,利用XMPP协议和相关技术实现的。这展示了开源软件如何通过模块化和标准化的方式,为企业提供定制化的...

    xmpp+android+openfire+asmack即时通讯

    总结来说,通过集成XMPP协议、使用Openfire服务器和Asmack库,开发者可以构建一个完整的Android即时通讯应用。在实际开发中,还需要考虑性能优化、安全策略、网络状况等因素,以提供稳定、安全的用户体验。同时,...

    JAVA源码+openfire+spark 即时通讯

    开发者可以通过阅读和学习这些源码,理解如何使用Java来实现IM服务的后端逻辑,例如数据传输协议的选择(如XMPP)、数据库操作、安全认证等。 其次,openfire是基于Java的开源IM服务器,它实现了XMPP(Extensible ...

    openfire + spark 开发

    我们将从 XMPP 协议的介绍开始,接着讨论如何使用 Spark 和 Openfire 来实现一个完整的 IM 软件开发。 什么是 XMPP? XMPP(Extensible Messaging and Presence Protocol)是一种发送、接收和处理消息的协议。它...

Global site tag (gtag.js) - Google Analytics