基于XMPP协议聊天程序【Openfire+asmark】

   
本文章提供了实现IM聊天程序最基础的配置和使用案例,可以实现点对点聊天。可做为入门阅读使用。文章转载请注明来源:http://blog.csdn.net/fengfeng91

一:搭建服务器:

官方网站下载openfire服务器安装。配置密码,权限,数据库(内置数据库或者添加外部数据库支持Mysql)

注意* 如果配置外部数据库,需先保证数据库服务已被开启,才能保证服务器开启。

Windows环境下开启抛出异常/乱码时,关闭服务器,以管理员身份运行,当出现以下提示时,表示服务器启动成功。


Openfire 3.9.1 [2014-5-27 16:00:15]

XXXX:

http://zhaofengpc:9090

https://zhaofengpc:9091

以下是openfire默认各个端口:


接口


端口


类型


描述


所有的地址


5222


客户端到服务器


客户端使用标准端口连接到服务器,连接可能没有加密,您可以更新安全设置 为这个端口


所有的地址


5223


客户端到服务器


客户端使用旧的SSL方法连接到服务器的端口。旧的SSL方法不是一个XMPP标准方法,在不久将不被支持,您可以更新安全设置 为这个端口


所有的地址


9090


管理控制台


端口使用不安全的管理控制台访问.


所有的地址


9091


管理控制台


端口使用安全的管理控制台访问.


所有的地址


7777


文件传送代理服务器


代理服务使用的端口允许在XMPP网络上的两个实体使用文件传送


所有的地址


7070


HTTP绑定


使用不安全的HTTP客户端连接端口


所有的地址


7443


HTTP绑定


使用安全的HTTP客户端连接端口


所有的地址


5229


Flash Cross Domain


Service that allows Flash clients connect to other hostnames and ports.

通过Openfire管理控制台管理用户和服务器:http://127.0.0.1:9090/index.jsp

安装smark电脑客户端用于开发测试。

如何使用SDK?

二:客户端用户登陆、会话


与服务器建立连接


//连接配置  openfire服务器地址及端口号

XMPPConnection con = new XMPPConnection();

ConnectionConfiguration

connConfig=new ConnectionConfiguration("192.168.191.1",5222);

con = new XMPPConnection(connConfig);

con.connect();


用户登陆


//登陆

con.login(“UserName”, “Psw”);

Presence presence = new Presence(Presence.Type.available);

con.sendPacket(presence);

con.disconnect();//登陆成功后,关闭连接(登陆成功,失败的判断处理用异常抓取来实现)


注*以上仅是最基础的配置,实际运用在需要运用单例模式,多线程,hanlder来处理逻辑


建立会话---接收消息

/**
 *
 * @Title: createAChart
 * @Description: TODO(和联系人创建一个会话监听处理)
 * @author [email protected]
 * @date 2014-5-8 下午3:11:35 void  返回类型
 * @throws
 */
	private void createAChart(String friend){
		if (cm == null) {
			cm = XmppTool.getConnection().getChatManager();
		}
		newchat = cm.createChat("[email protected]", null);
		cm.addChatListener(new ChatManagerListener() {
			@Override
			public void chatCreated(Chat chat, boolean able)
			{
				chat.addMessageListener(new MessageListener() {
					@Override
					public void processMessage(Chat chat2, Message message){
						if(message.getFrom().contains("[email protected]"))//收到来自zhaofengpc服务器xx的消息(获取自己的服务器,和好友)
						{
							String[] args = new String[] {
									"clienta", //获取用户
									message.getBody(),//消息
									TimeRender.getDate(),//时间
									"IN" //类型IN--接收
									};
							android.os.Message msg = handler.obtainMessage();//在handler里取出来显示消息
							msg.what = 1;
							msg.obj = args;
							msg.sendToTarget();
						}else{
							//message.getFrom().cantatins(获取列表上的用户,组,管理消息);
						}
					}
				});
			}
		});
	}

参考项目:


注意*这里一个完整的用户名是由 用户名称+@+服务器名称(安装时默认取电脑名称)

基于XMPP协议聊天程序【Openfire+asmark】

时间: 2024-08-07 12:25:50

基于XMPP协议聊天程序【Openfire+asmark】的相关文章

基于XMPP协议的Android即时通信系

以前做过一个基于XMPP协议的聊天社交软件,总结了一下.发出来. 设计基于开源的XMPP即时通信协议,采用C/S体系结构,通过GPRS无线网络用TCP协议连接到服务器,以架设开源的Openfn'e服务器作为即时通讯平台. 系统主要由以下部分组成:一是服务器,负责管理发出的连接或者与其他实体的会话,接收或转发XML(ExtensibleMarkup Language)流元素给授权的客户端.服务器等:二是客户终端.它与服务器相连,通过XMPP获得由服务器或任何其它相关的服务所提供的全部功能.三是协议

[转] 基于XMPP协议的Android即时通信系

转自:http://blog.csdn.net/lnb333666/article/details/7471292 以前做过一个基于XMPP协议的聊天社交软件,总结了一下.发出来. 设计基于开源的XMPP即时通信协议,采用C/S体系结构,通过GPRS无线网络用TCP协议连接到服务器,以架设开源的Openfn'e服务器作为即时通讯平台. 系统主要由以下部分组成:一是服务器,负责管理发出的连接或者与其他实体的会话,接收或转发XML(ExtensibleMarkup Language)流元素给授权的客

基于XMPP协议的手机多方多端即时通讯方案

目   录 基于XMPP协议的手机多方多端即时通讯方案................................................................. 1 目   录.................................................................................................................... 2 一. 开发背景........................

.net平台 基于 XMPP协议的即时消息服务端简单实现

.net平台 基于 XMPP协议的即时消息服务端简单实现 昨天抽空学习了一下XMPP,在网上找了好久,中文的资料太少了所以做这个简单的例子,今天才完成.公司也正在准备开发基于XMPP协议的即时通讯工具所以也算是打一个基础吧!如果你还没有了解过XMPP请先阅读附录中链接的文章,本实例是基agsXMPP上开发的,agsXMPP是C#写的支持开源XMPP协议软件,我们可以在agsXMPP上快速构建自已的即时通讯平台,我的这个例子只是修改了服务器端,因为agsXMPP本身自带的服务器端没有实现聊天功能.

Android之基于XMPP协议即时通讯软件(三)

CSDN博客之星投票请移驾:http://vote.blog.csdn.net/blogstaritem/blogstar2013/weidi1989 本文主要介绍本应用的控制层具体实现.如需了解项目结构与框架,请移步之前系列文章: Android之基于XMPP协议即时通讯软件(一) Android之基于XMPP协议即时通讯软件(二) 另外,本项目已经升级到V1.0.1,已同步到开源中国代码托管:http://git.oschina.net/way/XMPP 今后更新也只会在此处同步,不会再打包

IOS基于XMPP协议开发--XMPPFramewok框架(一):基础知识

最近蘑菇街团队的TT的开源,使我对im产生了兴趣,然后在网上找到了XMPPFramework进行学习研究, 并写了以下系列教程供大家参考,有写的不对的地方,请大家多多包涵指正. 目录索引 IOS基于XMPP协议开发--XMPPFramewok框架(一):基础知识 IOS基于XMPP协议开发--XMPPFramewok框架(二):服务器连接 IOS基于XMPP协议开发--XMPPFramewok框架(三):用户注册 IOS基于XMPP协议开发--XMPPFramewok框架(四):用户认证 IOS

通信——基于Xmpp协议实现的聊天室

前段时间写了个自定义通信协议的聊天室(即用\r\n标记字符串,作为一句话),总感觉自己弄的那个协议实现虽然简单,但是拓展性就太差了,只适合于发送聊天的内容,难以包含更多的信息.基于上述几点,于是就开始接触Xmpp协议,并自己定义了一个简单的Xmpp协议用以实现聊天室. 首先有2点要知道: 1.什么是Xmpp协议?   Xmpp协议是一种通信协议,有自己的规则,即用Xml格式的消息进行通信. 2.Xml串的例子.   <msg><name>laoyang</name>&l

基于XMPP 协议的开发 android

设计过一款基于开源的XMPP即时通信协议的软件.採用C/S协议,通过GPRS无线网络用TCP协议到server.以架设开源的Openfire server作为即时通讯平台 系统主要由下面部分组成:一是:server,负责管理发出的链接或者其他实体的会话.接收或转发XML 数据给client,它与server链接,通过XMPP协议获得由server或不论什么其他相关的服务锁提供的所有功能,三是协议网关的信息与外部消息系统但是不信息间的翻译,再就是XMPP网络,实现各个服务 client间的链接.系

基于XMPP协议的aSmack源码分析

在研究如何实现Pushing功能期间,收集了很多关于Pushing的资料,其中有一个androidnp开源项目用的人比较多,但是由于长时间没有什么人去维护,听说bug的几率挺多的,为了以后自己的产品稳定些,所以就打算自己研究一下asmack的源码,自己做一个插件,androidnp移动端的源码中包含了一个叫做asmack的jar. Reader和Writer 在asmack中有两个非常重要的对象PacketReader和PacketWriter,那么从类名上看Packet + (Reader/W