基于XMPP协议聊天程序【Openfire+asmark】
来源:互联网 发布:iphone铃声软件哪个好 编辑:程序博客网 时间:2024/05/23 15:34
本文章提供了实现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 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() {@Overridepublic void chatCreated(Chat chat, boolean able) {chat.addMessageListener(new MessageListener() {@Overridepublic 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】
- 关于xmpp协议,asmark,openfire知识介绍
- Android 使用Smack+openfire开发基于XMPP协议的聊天
- 即时通讯XMPP+openfire+asmark遇到的问题
- 即时通讯 ---XMPP,Openfire,Asmark 解决方案(一)
- 基于XMPP协议的聊天
- 基于XMPP协议的聊天 详解
- Iphone 上开发IM基于XMPP协议的LBS 程序(1),联通openfire服务器
- xmpp协议Android聊天程序demo
- Openfire与XMPP协议
- Openfire与XMPP协议
- Openfire与XMPP协议
- Openfire与XMPP协议
- Openfire与XMPP协议
- Openfire与XMPP协议
- Openfire与XMPP协议
- openfire XMPP协议
- Openfire与XMPP协议
- [剑指offer]面试题27 二叉搜索树与双向链表
- NAND控制器驱动程序分析(三)
- 第一次
- Windows下用Cygwin + Slickedit 开发 .
- jquery中html()、text()、val()的区别
- 基于XMPP协议聊天程序【Openfire+asmark】
- ubuntu 新建快捷方式
- 数值运算转化为string
- Jquery 1.9.0 以上版本 扩展使用 $.browser 方法
- android 音乐播放器功能实现
- 【读书笔记】Windows CE嵌入式系统_【5】_进程间通讯u
- 查看dd命令的执行进度
- Python基础笔记
- java实现在指定目录中查找字符串