功能的实现结果:能够使自己编写客户端与spark客户端信息通讯,将接受到的信息更新到textview上。

1.下载openfire并安装。设置域名,添加用户

2.下载安装spark客户端

3.jar包 :asmack.jar

4.权限:

 <uses-permission android:name="android.permission.INTERNET"/>

5.简单布局:

     <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="login"
android:text="登录"
android:id="@+id/button" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="sendMsg"
android:text="发送消息"
android:id="@+id/button2"
android:layout_gravity="center_vertical" /> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/content" />

6.Activity代码:

 public class MainActivity extends AppCompatActivity {

     XMPPConnection con;
TextView tv;
//用于刷新textview的信息text
Handler hand=new Handler(){
@Override
public void handleMessage(android.os.Message msg) {
tv.setText(msg.obj.toString());
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
initView();
} private void initView() {
tv= (TextView) findViewById(R.id.content);
} private void init() {
new Thread(){
@Override
public void run() {
try {
//指定连接的ip地址和端口 以及服务器的域名
ConnectionConfiguration config=new ConnectionConfiguration("10.8.167.75",5222,"gxw");
//连接对象
con =new XMPPConnection(config);
//开启连接
con.connect();
} catch (Exception e) {
e.printStackTrace();
}
}
}.start(); }
public void login(View v){
try {
//登陆的用户账号和密码
con.login("bb","123456x");
System.out.print("");
} catch (Exception e) {
e.printStackTrace();
}
}
public void sendMsg(View v){ ChatManager cm = con.getChatManager();
cm.addChatListener(new ChatManagerListener() {
@Override
public void chatCreated(Chat chat, boolean b) {
chat.addMessageListener(new MessageListener() {
@Override
public void processMessage(Chat chat, Message message) {
android.os.Message msg= android.os.Message.obtain();
if (!TextUtils.isEmpty(message.getBody())){
msg.obj=message.getBody();
hand.sendMessage(msg);
}
}
});
}
}); //aa为进行通信的账号,@后为域名
Chat chat = cm.createChat("aa@gxw",null);
try {
chat.sendMessage("1111111");
} catch (Exception e) {
e.printStackTrace();
}
}
}

基于XMPP利用openfire简单的即时通讯的更多相关文章

  1. 基于环信的仿QQ即时通讯的简单实现

    代码地址如下:http://www.demodashi.com/demo/11645.html 我的博客地址 之前一直想实现聊天的功能,但是感觉有点困难,今天看了环信的API,就利用下午的时间动手试了 ...

  2. Android基于XMPP Smack openfire 开发的聊天室

    Android基于XMPP Smack openfire 开发的聊天室(一)[会议服务.聊天室列表.加入] http://blog.csdn.net/lnb333666/article/details ...

  3. openfire+smack 实现即时通讯基本框架

    smack jar下载地址 http://www.igniterealtime.org/downloads/download-landing.jsp?file=smack/smack_3_2_2.zi ...

  4. xmpp和OpenFire示例,即时聊天室,支持离线消息

    让我说说为什么写这个博客,这是因为我在上周末的研究XMPP和OpenFire,从互联网上下载Demo,但跑不起来.它花了很长的时间.它被改造.抬高.篇博文也是希望后边学习XMPP和OpenFire的同 ...

  5. 7. Swift 基于Xmpp和openfire实现一个简单的登录注册

    1. 基本步骤:首先导入Xmpp框架,配置环境 ->由于我们使用的是OC的Xmpp框架,再进行Swift开发时需要进行桥接. 具体方法就是创建一个基于c的.h的头文件,然后将我们需要编译OC的语 ...

  6. Android基于XMPP Smack Openfire下学习开发IM(六)总结

    不管学习什么都应该总结 这里我把关于Xmpp的一些方法整理到一个工具类中了 我就分享给大家 XmppConnection.java package com.techrare.utils; import ...

  7. Android基于XMPP Smack Openfire下学习开发IM(一)实现用户注册、登录、修改密码和注销等

    http://blog.csdn.net/h7870181/article/details/8653865 以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后 ...

  8. NodeJs 实现简单WebSocket 即时通讯

    至于服务器语言选择nodeJs,一是因为自己是做前端的,对javascript比较熟悉,相比于其他后台语言,自然会更喜欢nodeJs了, 二是NodeJs本身事件驱动的方式很擅长与大量客户端保持高并发 ...

  9. .Net core 3.0 SignalR+Vue 实现简单的即时通讯/聊天IM (无jq依赖)

    .Net core 中的SignalR JavaScript客户端已经不需要依赖Jquery了 一.服务端 1.nuget安装 Microsoft.AspNetCore.SignalR 2.在star ...

随机推荐

  1. Segment公司--整合数据进行分析

    YC毕业生Segment获得1500万美元A轮融资 现在收集数据是每一个公司的必修课了,而且是从各种不同 API 上收集数据,但是你还要把这些数据整合起来才能发挥作用,Segment就能帮你整合各个平 ...

  2. 目标跟踪ObjectT综述介绍

    此文也很详细:http://blog.csdn.net/maochongsandai110/article/details/11530045 原文链接:http://blog.csdn.net/pp5 ...

  3. max 宏定义取消:error C2589: error C2059: 语法错误 : “::”

    原文链接:http://blog.csdn.net/danelumax2/article/details/9172465有修改! 一:关于Pcl和WIndef的冲突: 1. 错误输出 ./zlibra ...

  4. 关于layui 三级联动 渲染报错解决方法

    /** * 时间:2016年11月27日 * 作者:707200833 * 说明:依赖与jQuery和layui, 是基于layui开发的一个省市区联动的小插件, 使用上要基于layui的表单进行使用 ...

  5. Java泛型的一段代码

    package com.chase.test; import java.util.ArrayList; import java.util.Hashtable; import java.util.Lis ...

  6. SaltStact自动化运维工具03

    存储位置   类型      采集方式                 场景Grains    minion        静态    minion启动时,可以刷新    1.获取信息 2.匹配pil ...

  7. Tomcat在处理POST和GET提交方式时的字符编码问题

    部分内容参考http://yejg1212.blog.163.com/blog/static/3958206120098384327191(原作者:飞翔)  一.POST和GET请求方式的区别: 在默 ...

  8. 原生js实现form表单序列化

    当我们有form表单而且里面的表单元素较多时,咱们总不能一个个去获取表单元素内的值来进行拼接吧!这样会很让人蛋疼!为了方便与后台交互并且提高自己的开发效率,并且不让你蛋疼:我们一起用原生来写一个表单序 ...

  9. [POJ2104] K – th Number (可持久化线段树 主席树)

    题目背景 这是个非常经典的主席树入门题--静态区间第K小 数据已经过加强,请使用主席树.同时请注意常数优化 题目描述 如题,给定N个正整数构成的序列,将对于指定的闭区间查询其区间内的第K小值. 输入输 ...

  10. Web项目部署(Flask Angular2 Nginx)

    独立弄了一个项目,也是锻炼自己的工程能力,使用了比较常用的框架,后端Flask,前端Angular2,采用前后端完全分离的方式,通过接口传输json,但是在具体部署过程中,查找资料较为零散,故整理如下 ...