smack 4.1.2+openfire 3.10.2i

openfire 和以往版本配置没有多大区别就不详细介绍了,网上搜会有一大堆的图解

下面主要说一下smack 4.1.2 的开发使用,在网上看了好多文章包括stackoverflow的都没有4.1以上的使用说明,同时我发现官方的一些说明好像和这个版本不对应,例如UseConnectionConfiguration#setReconnectionAllowed(boolean)
to turn on/off this feature,  我查了根本没有这个方法,所以以就自己写了一些笔记,供大家参考,同时共同讨论促进大家使用smack的最新版。

以下是我参考的链接

http://my.oschina.net/yuanxulong/blog/348572

https://github.com/igniterealtime/Smack/blob/master/documentation/gettingstarted.md

http://blog.csdn.net/chszs/article/details/41620843

http://blog.csdn.net/chszs/article/details/41620853

securty问题

https://issues.jenkins-ci.org/browse/JENKINS-25505

认证方式

http://blog.csdn.net/coding_me/article/details/39524137

0认证的解决办法

I have solved this problem, the Service Name should be the same as openfire settings:

下面是我写的工具类,聊天也就主要两件事情,一个就是发送信息,一个是接受信息,发送就是smackTools.getChat();.sendMessage("detail") 获取内容就是 chatManager.addChatListener(new ChatManagerListener()
 那一部分,总体讲比较简单,以下说明需要注意的几点

(1)以下是securtyMode关闭之后的代码

(2)ServerName不是域名是openfire服务器的名称

(3)host可以在host文件中更改

(4)connect.login()完必须循环有操作否则会在别人那里显示为脱机状态

(5) newChat =  chatManager.createChat("[email protected]",null);  @后面是serverName

(6)使用完必须关闭连接否则会出现发送一条多条显示的现象。因为每个对话都是单独一条线程

(7)采用循环让获取对方说话内容一方面获取内容了而且保证一直在线,像网上说的那个设置重连的方法在这版本中不存在

public class SmackTools {

public static SmackTools smackTools;

private AbstractXMPPConnection connection;

private String content;

private Chat newChat;

private SmackTools() throws InterruptedException{

XMPPTCPConnectionConfiguration.Builder builder = XMPPTCPConnectionConfiguration.builder();

builder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);

builder.setUsernameAndPassword("why1", "why134134");

builder.setServiceName("why-pc");

builder.setHost("csdn.shimiso.com");

builder.setConnectTimeout(10000000);

builder.setResource("why");

ConnectionConfiguration config = builder.build();

try {

connection = new XMPPTCPConnection(builder.build());

connection.connect();

connection.login();

//获取的谈话

//chat

final ChatManager chatManager = ChatManager.getInstanceFor(connection);

newChat =  chatManager.createChat("[email protected]",null);

new Thread(){

public void run() {

while(true){

try {

Thread.sleep(3000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

chatManager.addChatListener(new ChatManagerListener() {

@Override

public void chatCreated(Chat chat, boolean createdLocally) {

if (!createdLocally) {

chat.addMessageListener(new ChatMessageListener() {

@Override

public void processMessage(Chat chat, Message message) {

if(message.getBody() == null || message.getBody().equals(null)){

}

else{

// System.out

//
.println("run...");

System.out

.println("from " + message.getFrom() + "   " + message.getBody());

content = content + "\n" + message.getFrom() + ":  " + message.getBody();

Consts.content = Consts.content + "\n" + message.getFrom() + ":  " + message.getBody();

}

}

});

}

}

});

}

};

}.start();

} catch (SmackException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (XMPPException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public Chat getChat(){

return newChat;

}

public String getContent(){

return content;

}

public AbstractXMPPConnection getConn(){

return connection;

}

public void disConn(){

connection.disconnect();

}

public static SmackTools getInstance(){

if(smackTools == null){

try {

smackTools = new SmackTools();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return smackTools;

}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-06 15:51:53

smack 4.1.2+openfire 3.10.2i的相关文章

Openfire即时通讯服务搭建与Smack访问

Openfire 是开源的.基于可拓展通讯和表示协议(XMPP).采用Java编程语言开发的实时协作服务器. Openfire安装和使用都非常简单,并利用Web进行管理.单台服务器可支持上万并发用户. 首先到openfire官网上去下载Openfire的服务器包与Smack的客户端调用包. http://www.igniterealtime.org/projects/index.jsp 打开后在这里可以看到有Openfire,Spark,Smack这三个东西,我简单解释一下它们分别是什么,Ope

基于openfire+smack即时通讯instant message开发

前言 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也有其他的选择. Openfire 是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使用3.8.1版本,这个版本是当前最新的版本,而且网上可以找到下载的源代码. 即时通信客户端可使用spark2.6.3,这个版本是目前最新的release版本,经过测试发现上一版本在视频支持,msn网关支持上可能有问题,所以选择openfire3.8.1+spark2.6.3是最合适的选择. Smac

基于xmpp openfire smack开发之openfire介绍和部署[1]

前言 http://blog.csdn.net/shimiso/article/details/8816558 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也有其他的选择. Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使用3.8.1版本,这个版本是当前最新的版本,而且网上可以找到下载的源代码. 即时通信客户端可使用spark2.6.3,这个版本是目前最新的release版本,经过测试发现上一版本在视频支持,msn

基于openfire+smack的Android、Web、PC开发(一)

前言 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也有其他的选择. Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使用3.8.1版本,这个版本是当前最新的版本,而且网上可以找到下载的源代码. 即时通信客户端可使用spark2.6.3,这个版本是目前最新的release版本,经过测试发现上一版本在视频支持,msn网关支持上可能有问题,所以选择openfire3.8.1+spark2.6.3是最合适的选择. Smack

Openfire XMPP Smack RTC IM 即时通讯 聊天

目录 目录简介Openfire 简介相关的几个名词SmackSparkJIDXMPPOpenfire 安装配置测试代码初始化登录服务器登录底层报文通讯简要解析登录底层报文通讯简要解析服务器判断客户端是否在线发送消息测试案例代码项目结构MainActivity常用功能封装的工具栏 简介 Demo地址:https://github.com/baiqiantao/OpenFireTest.git 官网 官方文档 OpenFire下载 Openfire 简介 Openfire Openfire是一个根据

openfire安装配置完全教程

Java领域的IM解决方案 Java领域的即时通信的解决方案可以考虑openfire+spark+smack. Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端,最新版本是3.8.1 可以到http://www.igniterealtime.org/downloads/index.jsp下载(分为windows和linux版本) 可以到http://www.igniterealtime.org/downloads/source.jsp下载源码,方便二次开发插件. Spar

阿里百川-TAE安装openfire服务记录

1.创建服务 映射:7777,7070,5222,9090端口 2.下载rpm文件 在http://download.igniterealtime.org/openfire/openfire-3.10.2-1.i386.rpm下载openfire的rpm文件,通过tae服务的文件上传上传到centos中 3.安装rpm文件 使用tae的webssh登录到主机,cd到/ace/upload目录下 使用 rpm -ivh openfire-3.10.2-1.i386.rpm 命令安装rpm文件 安装

(转)基于即时通信和LBS技术的位置感知服务(三):搭建Openfire服务器+测试2款IM客户端

主要包含4个章节: 1. Java 领域的即时通信的解决方案 2. 搭建 Openfire 服务器 3. 使用客户端测试我们搭建的 Openfire 服务器 4. Smack 和 ASmack 一.Java领域的即时通信的解决方案 Java领域的即时通信的解决方案可以考虑openfire+spark+smack. 1. Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前最新的版本为3.6.4,网上可以找到下载的源代码. 2. 即时通信客户端可使用spark2.5.

[即时通讯]openfire启动失败解决办法

当你发现你的电脑上的openfire无论你是重新安装还是重启都无法启动的情况下你可以按照我下面写的那些终端指令来启动你的openfire不用再去重新做你的系统了. 一般你发现你的openfire打开出现这样的窗口后你就可以想到你的openfire出问题了,极个别的时候你可以通过重新安装来解决. 如果大家的问题重新安装后没有解决那就试下我下面的方法. 先打开自己电脑上的终端然后输入以下指令 //获取权限 sudo chmod -R 777 /usr/local/openfire/bin  sudo