- 浏览: 912171 次
- 性别:
- 来自: 宁波
文章分类
最新评论
-
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 8182制作调查表或企业内部系统的时候,经常被一系列表单弄得焦头烂 ... -
高性能高可用的服务端研究之Req-Rep模式(附源码)
2014-03-04 10:01 5496最近在思考高可用的 ... -
也说企业应用中的公式管理功能
2011-02-14 13:41 1284在我们日常开发企业应用或互联网应用中,往往会碰到公式的高级定义 ... -
大学时光的陈年旧作:代码收集软件
2009-08-26 13:37 2026记得读大学的时候,经常喜欢收集代码,今天翻看电脑,发现大学时做 ... -
好用的复选树源码改进版
2009-07-02 15:36 3321在我们项目开发过程中,复选树是经常用碰到的,在Ext,JQ等框 ... -
Apache 2.2.x+Tomcat6集群配置备忘
2009-07-01 10:35 2883在我们部署Web应用时,不可避免大多都会涉及到集群问题,此文作 ... -
校内应用API开发源码
2009-06-24 13:04 3450目前在51,校内,facebook开发小应用越来越热,这里我仅 ... -
网页划词自动翻译的实现
2009-06-15 13:01 1266其中机器翻译调用的Google API,将以下代码另存为即可看 ... -
抓取百度Top500歌曲以及地址源码
2009-05-31 11:11 2955在我整理完在线听歌(http://ting.faqee.com ... -
灰色模型预测算法源码
2008-12-09 08:50 2430在我们进行Web项目开发时,经常需要预测一些离散的数据,那么灰 ... -
AS 3.0语言的魅力(12月1日更新例子)
2008-11-28 09:11 1616以前一直用Java,由于某些Web场景的开发不得不用到Flas ... -
通用各类文档读写的设计与实现
2008-11-21 15:25 1473在我们日常的项目开发中,经常碰到需要读取word等文档的需求, ... -
Web上传文件在线压缩的实现
2008-10-16 08:23 2478在我们开发网站的过程中,如果用户上传的文件过大,由于考虑到服务 ... -
在Java调用VB编写的Dll文件
2008-10-15 08:56 5711在公司里,不同的系统使用不能的语言非常正常,我曾经在一个公司就 ... -
图论—深度优先和广度优先算法源码
2008-10-06 13:21 1844最近由于项目需要,需要实现深度优先和广度优先算法,图论中的基础 ... -
使用Substance制作漂亮的swing皮肤(附源码)
2008-09-25 09:29 6330最近项目用swing开发桌面程序,感觉本身的swing界面实在 ... -
简易基于Ext留言板源码
2008-09-19 13:15 2653以前接私活的时候给医院做个网站,搞了个基于Ext的小论坛,但后 ... -
Java加密算法汇总
2008-09-19 09:46 1680Base64: package com.cxlh.mm; p ... -
网站全文检索的实现(基于lucene 2.0)
2008-09-18 13:46 2048辛辛苦苦做好了一个网站,接下来就必须为用户提供全文检索的功能, ... -
Google API代码
2008-09-18 08:57 1561<html> <head> ...
相关推荐
此文档定义了可扩展消息出席协议(XMPP)的核心特性:协议使用XML元素在任意两个网络端点间近实时的交换...当XMPP为交换XML数据提供一般化,可扩展的框架时,它主要用于建立满足RFC2779的即时消息与出席应用的需求。
从网上down的XMPP协议文档,doc格式
基于XMPP协议的Android即时通信系统设计
类似QQ的xmpp协议聊天 基本功能都有了
以前写的程序,本来是可以用的。现在重装了系统就不行了,欢迎下载指正。
agsXMPP\XMPP协议--即时通讯工具实现原理
net平台 基于 XMPP协议的即时消息服务端简单实现
基于XMPP协议的即时通信系统服务器集群的研究,陈武,杨世达,本文描述了在实现基于xmpp协议的即时通信系统的服务器集群时遇到的关键性问题,从安全、性能和通用性方面考虑提出了解决方案,重��
XMPP_协议介绍,手机客户端需要实现即时通信功能,在通信协议上采用开放的Jabber(XMPP)协议,整个XMPP协议最为核心也是最为复杂的部分是Subscription的运行机制,抓取了一下相关的通信协议报文,供开发时候参考。
XMPP协议中文参考指南
基于XMPP协议的手机多方多端即时通讯方案,包括详细的介绍和解决方案
不定时更新项目
通过绑定你的gmail邮箱 既可以通过xmpp协议即时传输数据
xmpp即时通讯,仿qq,测试可用,用法有描述
XMPP协议的核心部分,中文名称可扩展消息出席协议
xmpp 协议即时通讯的源代码,是用vc6进行编译,知道通讯的原理
一个很好的基于XMPP协议通信的源码例子,之前在网上下载了很多基于XMpp协议的例子都不好使,经自己改动后能正常通信,VS2010
基于xmpp协议的多端即时通讯:很详细的介绍,希望可以帮到大家.