- 浏览: 926948 次
- 性别:
- 来自: 宁波
文章分类
最新评论
-
masuweng:
不错!!!!!
自定义表单的设计与实现 -
xhackertxl:
注意将jstock cvs下来后去掉原先的J2SE 1.6li ...
开源项目推荐 — 股票分析软件JStock -
luoyexiaozhu:
最近在学表单这一块,没有思路,能发给我一份学习一下吗86239 ...
WEB项目中自定义表单的设计与实现 -
volunteer521:
楼主,以下的引用类没有对应的jar包,麻烦共享以下,谢谢!im ...
通用数据抽取系统 -
baichixiaozi:
体验下,谢谢分享
原创简化Web开发的框架 - JSPTagEx
运行环境:JDK1.4+
第三方包:Smack(Openfire服务器官方提供)
XMPP服务器:Openfire 3.6
特点:可直接与QQ,MSN,Gtalk等账号绑定,可直接与QQ,Gtalk,MSN等聊天工具互通
通过这个Java程序,让大家首先先了解一下基于XMPP协议的即时通信的基本原理,希望大家通过界面上的报文了解通信的远离,我先抛砖引玉一下,
核心源码:
package com.nbhj.im; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import org.jivesoftware.smack.ConnectionConfiguration; import org.jivesoftware.smack.Roster; import org.jivesoftware.smack.RosterEntry; import org.jivesoftware.smack.RosterGroup; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; public class IMServer { private ConnectionConfiguration connectionConfig; private XMPPConnection connection; private Roster roster; private boolean loginState; private Listener listener; /** * 构造 IMServer(serviceName) */ public IMServer(String serviceName) { connectionConfig = new ConnectionConfiguration(serviceName); connection = new XMPPConnection(connectionConfig); listener=new Listener(); try { connection.connect(); } catch (XMPPException e) { e.printStackTrace(); } } /** * 构造 IMServer(host,port) */ public IMServer(String host, String port) { connectionConfig = new ConnectionConfiguration(host, Integer .parseInt(port)); connection = new XMPPConnection(connectionConfig); listener=new Listener(); try { connection.connect(); } catch (XMPPException e) { e.printStackTrace(); } } /** * 构造 IMServer(host port serviceName) */ public IMServer(String host, int port, String serviceName) { connectionConfig = new ConnectionConfiguration(host, port, serviceName); connection = new XMPPConnection(connectionConfig); listener=new Listener(); try { connection.connect(); } catch (XMPPException e) { e.printStackTrace(); } } /** * 账户登陆 Server * * @return boolean */ public boolean loginServer(String userName, String userPswd) { try { connection.login(userName, userPswd); loginState = true; roster = connection.getRoster(); listener.regConnectionListener(connection); listener.regPackListener(connection); listener.onlineServer(connection); listener.regRosterListener(roster); } catch (XMPPException e) { e.printStackTrace(); } return loginState; } /** * 注册新账号 * * @return boolean */ public boolean createAccount(String regUserName, String regUserPswd) { try { connection.getAccountManager().createAccount(regUserName, regUserPswd); return true; } catch (XMPPException e) { e.printStackTrace(); return false; } } /** * 账户退出 Server * * @return boolean */ public boolean logoutServer() { if (loginState) { connection.disconnect(); listener.stopOnlineThread(); loginState = false; } return !loginState; } /** * 返回所有用户信息 <RosterEntry> * * @return List(RosterEntry) */ public List<RosterEntry> getOnlineEntries() { List<RosterEntry> EntriesList = new ArrayList<RosterEntry>(); Collection<RosterEntry> rosterEntry = roster.getEntries(); Iterator<RosterEntry> i = rosterEntry.iterator(); while (i.hasNext()){ EntriesList.add(i.next()); } return EntriesList; } /** * 返回所有用户信息 <RosterEntry> * * @return List(RosterEntry) */ public List<RosterEntry> getAllEntries() { List<RosterEntry> EntriesList = new ArrayList<RosterEntry>(); Collection<RosterEntry> rosterEntry = roster.getEntries(); Iterator<RosterEntry> i = rosterEntry.iterator(); while (i.hasNext()) EntriesList.add(i.next()); return EntriesList; } /** * 返回相应(groupName)组里的所有用户<RosterEntry> * * @return List(RosterEntry) */ public List<RosterEntry> getEntriesByGroup(String groupName) { List<RosterEntry> EntriesList = new ArrayList<RosterEntry>(); RosterGroup rosterGroup = roster.getGroup(groupName); Collection<RosterEntry> rosterEntry = rosterGroup.getEntries(); Iterator<RosterEntry> i = rosterEntry.iterator(); while (i.hasNext()) EntriesList.add(i.next()); return EntriesList; } /** * 返回所有组信息 <RosterGroup> * * @return List(RosterGroup) */ public List<RosterGroup> getGroups() { List<RosterGroup> groupsList = new ArrayList<RosterGroup>(); Collection<RosterGroup> rosterGroup = roster.getGroups(); Iterator<RosterGroup> i = rosterGroup.iterator(); while (i.hasNext()) groupsList.add(i.next()); return groupsList; } /** * @return connection */ public XMPPConnection getConnection() { return connection; } /** * @return loginState */ public boolean getLoginState() { return loginState; } /** * @return roster */ public Roster getRoster() { return roster; } }
- im.jar (1.8 MB)
- 下载次数: 1036
评论
9 楼
WOLAOU
2013-07-30
要是有源代码做个研究就好了 531522276@qq.com
8 楼
SmileTears
2012-01-04
请问下,用smack绑定msn账号,给msn发信息,msn可以收到,msn发回来就收不到,是为什么呀?
7 楼
tuoxie007
2010-01-29
干嘛不把客户端代码也贴出来呀
谢谢LZ啦
谢谢LZ啦
6 楼
tongfan
2009-11-20
怎么还有数据库连接呢都!!!!
5 楼
294347
2009-11-03
运行出错,源代码也没有
4 楼
gridrender
2009-04-01
楼主,能不能将您的源代码也共享一下啊。
让大家学习一下您的源代码,交流技术啊。
我的QQ:327524866
我也在做一个这样的客户端。
让大家学习一下您的源代码,交流技术啊。
我的QQ:327524866
我也在做一个这样的客户端。
3 楼
nmj1987
2008-11-10
我也想要源码学习一下,如果方便的话,请发到邮箱:niminjie1987@126.com。谢谢!
2 楼
lijjjjil
2008-10-24
怎么调试啊。。。Lz能把其他源码发给我学习学习吗?谢谢!!!
sbuk@163.com
sbuk@163.com
1 楼
menxin6095
2008-10-18
谢谢了 收藏了
发表评论
-
自定义表单的设计与实现
2017-06-13 17:46 8264制作调查表或企业内部系统的时候,经常被一系列表单弄得焦头烂 ... -
高性能高可用的服务端研究之Req-Rep模式(附源码)
2014-03-04 10:01 5556最近在思考高可用的 ... -
也说企业应用中的公式管理功能
2011-02-14 13:41 1331在我们日常开发企业应用或互联网应用中,往往会碰到公式的高级定义 ... -
大学时光的陈年旧作:代码收集软件
2009-08-26 13:37 2056记得读大学的时候,经常喜欢收集代码,今天翻看电脑,发现大学时做 ... -
好用的复选树源码改进版
2009-07-02 15:36 3369在我们项目开发过程中,复选树是经常用碰到的,在Ext,JQ等框 ... -
Apache 2.2.x+Tomcat6集群配置备忘
2009-07-01 10:35 2939在我们部署Web应用时,不可避免大多都会涉及到集群问题,此文作 ... -
校内应用API开发源码
2009-06-24 13:04 3494目前在51,校内,facebook开发小应用越来越热,这里我仅 ... -
网页划词自动翻译的实现
2009-06-15 13:01 1312其中机器翻译调用的Google API,将以下代码另存为即可看 ... -
抓取百度Top500歌曲以及地址源码
2009-05-31 11:11 3006在我整理完在线听歌(http://ting.faqee.com ... -
灰色模型预测算法源码
2008-12-09 08:50 2470在我们进行Web项目开发时,经常需要预测一些离散的数据,那么灰 ... -
AS 3.0语言的魅力(12月1日更新例子)
2008-11-28 09:11 1657以前一直用Java,由于某些Web场景的开发不得不用到Flas ... -
通用各类文档读写的设计与实现
2008-11-21 15:25 1503在我们日常的项目开发中,经常碰到需要读取word等文档的需求, ... -
Web上传文件在线压缩的实现
2008-10-16 08:23 2528在我们开发网站的过程中,如果用户上传的文件过大,由于考虑到服务 ... -
在Java调用VB编写的Dll文件
2008-10-15 08:56 5761在公司里,不同的系统使用不能的语言非常正常,我曾经在一个公司就 ... -
图论—深度优先和广度优先算法源码
2008-10-06 13:21 1885最近由于项目需要,需要实现深度优先和广度优先算法,图论中的基础 ... -
使用Substance制作漂亮的swing皮肤(附源码)
2008-09-25 09:29 6557最近项目用swing开发桌面程序,感觉本身的swing界面实在 ... -
简易基于Ext留言板源码
2008-09-19 13:15 2701以前接私活的时候给医院做个网站,搞了个基于Ext的小论坛,但后 ... -
Java加密算法汇总
2008-09-19 09:46 1713Base64: package com.cxlh.mm; p ... -
网站全文检索的实现(基于lucene 2.0)
2008-09-18 13:46 2088辛辛苦苦做好了一个网站,接下来就必须为用户提供全文检索的功能, ... -
Google API代码
2008-09-18 08:57 1594<html> <head> ...
相关推荐
即时通信XMPP协议,全称为可扩展消息出席协议(Extensible Messaging and Presence Protocol),是一种基于XML的开放标准,设计用于实现实时通信和状态管理。该协议最初由Jabber开源社区于1999年开发,后来在2002年...
本项目“基于XMPP的即时通信程序”着重于使用XMPP(Extensible Messaging and Presence Protocol)协议来构建这样一个系统。XMPP是一种开放标准的协议,最初由Jabber项目开发,现已被IETF标准化,广泛应用于多种实时...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的开放标准协议,用于即时通信(IM)和在线状态服务。这个“XMPP.zip”文件显然包含了关于如何使用XMPP实现即时通讯,尤其是仿照QQ功能的相关资源...
本项目基于XMPP(Extensible Messaging and Presence Protocol)协议,这是一种开放标准的即时通讯协议,以其灵活性、可扩展性和安全性被许多开发者所青睐。 【XMPP协议详解】 XMPP是由IETF(Internet Engineering...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,被广泛应用于即时消息、在线状态管理和多方聊天等领域。这个文档集可能是对XMPP协议的详细解释,包括其核心概念、工作原理以及...
1. 常见即时通讯软件:介绍XMPP协议在QQ、Facebook、Twitter、MSN Messenger等主流即时通讯软件中的应用。 2. 多端支持:XMPP协议支持多种设备和平台,包括PC、Pad、Phone和Web。 八、解决方案 1. 一个应用程序,...
XMPP协议具有开放性、灵活性和可扩展性等特点,支持点对点通信、群组聊天、文件传输等多种功能,同时支持多种设备之间的互联互通。由于其强大的功能和良好的兼容性,XMPP被广泛应用于各种即时通信场景中。 #### ...
通过以上介绍,我们可以看到,基于XMPP协议的多端即时通讯方案不仅能够实现不同即时通信软件之间的互联互通,还能支持多种设备类型,为用户提供更加便捷、高效的沟通体验。同时,选择开源的Openfire作为服务器端,...
XMPP(Extensible Messaging and Presence Protocol,可扩展消息传递和存在协议)是一种基于XML的开放标准协议,最初设计用于实时通信和协作。XMPP的核心是Jabber协议,通过TCP/IP连接进行数据传输,支持一对一、一...
在即时通信领域,XMPP(Extensible Messaging and Presence Protocol)是一种广泛应用的开放标准协议,它基于XML,并且设计用于提供实时、双向通信服务。在这个基于XMPP协议的Android即时通信应用项目中,开发者构建...
标题 "简单的基于XMPP协议的即时通信的实现" 指出我们将探讨如何利用XMPP(Extensible Messaging and Presence Protocol)协议构建一个基础的即时通信系统。XMPP是一种基于XML的开放标准,常用于实现聊天、状态更新...
在 XMPP 协议中,出席信息服务可以从即时消息服务中分离,例如,可以提供一个出席信息服务、一个即时消息服务或同时提供两者。XMPP 协议也提供了把出席信息服务和即时消息服务分离成为独立服务的可能性。 XMPP ...
XMPP (Extensible Messaging and Presence Protocol) 是一种开放标准的即时通讯协议,它基于XML,设计用于提供实时通信和消息传递。XMPP的核心组件包括客户端、服务器和服务器之间的连接,使得用户可以进行一对一、...
XMPP(可扩展消息与存在协议)是一种基于XML的开放标准协议,主要用于即时通讯(IM)系统,文件传输,游戏引擎,物联网(IoT),以及一般实时交互应用程序。该协议的核心在于它的灵活性与可扩展性,它允许开发者构建...
### XMPP协议(可扩展消息出席协议):核心知识点解析 #### 一、绪论 **1.1 概览** XMPP(可扩展消息和出席协议)是一种开放式的XML协议,旨在支持接近实时的消息传递、出席信息以及请求-响应服务。该协议的基本...
在Android平台上实现基于XMPP(Extensible Messaging and Presence Protocol)的即时通信系统,可以让你创建一个类似QQ的应用,实现用户间的实时消息传递、在线状态显示等功能。以下是对这个主题的详细解析: 一、...
以上知识是基于XMPP协议在Android上开发即时通讯应用的基础,通过阅读《Android之基于XMPP协议即时通讯软件》系列博客,可以深入了解每个环节的具体实现步骤和技巧。同时,提供的图片文件可能包含示例代码、界面截图...
XMPP(可扩展消息和出席信息协议)是一种开放式的基于XML(可扩展标记语言)的通信协议,专门用于实现实时消息传递和出席信息(即在线状态)的交换。XMPP的设计目标是创建一个通用、可扩展的框架,使网络上的设备和...