首页 > 其他 > 详细

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

时间:2014-06-22 19:03:46      阅读:632      评论:0      收藏:0      [点我收藏+]

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

:搭建服务器:

官方网站下载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 zhaofeng@tydic.com  
 * @date 2014-5-8 下午3:11:35 void  返回类型
 * @throws
 */
	private void createAChart(String friend){
		if (cm == null) {
			cm = XmppTool.getConnection().getChatManager();
		}
		newchat = cm.createChat("clienta@zhaofengpc", 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("clienta@zhaofengpc"))//收到来自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】,布布扣,bubuko.com

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

原文:http://blog.csdn.net/fengfeng91/article/details/32347731

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!