=============================================================== 主动发送信息给某个用户 ------------------------------------ XMPPConnection.DEBUG_ENABLED = true; //设置服务器地址 XMPPConnection conn = new XMPPConnection("127.0.0.1"); conn.connect(); //输入账号和密码登陆 conn.login("test2@127.0.0.1", "123456"); //创建一个和test1的对话,并设置信息监听 Chat mychat = conn.getManager().create("test1@127.0.0.1", new MessageListener() { @Override public void processMessage(Chat chat,, Message message) { String messageBody = message.getBody(); System.out.println("收到信息:"+messageBody); } }); //发送给test1文本信息 mychat.sendMessage("hello"); //退出登陆 conn.disconnect(); =============================================================== 设置自己的登陆状态 ------------------------------------ XMPPConnection.DEBUG_ENABLED = true; //设置服务器地址 XMPPConnection conn = new XMPPConnection("127.0.0.1"); conn.connect(); //输入账号和密码登陆 conn.login("test2@127.0.0.1", "123456"); //设置登陆后的个人状态信息 Presence p = new Presence(Presence.Type.available); p.setStatus("发呆中。。。"); conn.sendPacket(p); //退出登陆 conn.disconnect(); ========================================================================== 被动接收用户发来的信息 ------------------------------------ XMPPConnection.DEBUG_ENABLED = true; //设置服务器地址 XMPPConnection conn = new XMPPConnection("127.0.0.1"); conn.connect(); //输入账号和密码登陆 conn.login("test1@127.0.0.1", "123456"); //设置信息的监听 conn.getChatManager().addChatListener(new ChatManagerListener() { @Override public void chatCreated(Chat chat, boolean createdLocally) { chat.addMessageListener(new MessageListener() { @Override public void processMessage(Chat chat, Message message) { String messageBody = message.getBody(); System.out.println("接收到信息:"+messageBody); } }); } }); //退出登陆 conn.disconnect(); ========================================================================== 获取我的好友列表 ------------------------------------ //设置服务器地址 XMPPConnection conn = new XMPPConnection("127.0.0.1"); conn.connect(); //输入账号和密码登陆 conn.login("test1@127.0.0.1", "123456"); Collection<RosterEntry> rosters = conn.getRoster().getEntries(); System.out.println("我的好友列表:======================="); for(RosterEntry rosterEntry : rosters){ System.out.print("name: "+rosterEntry.getName()+",jid: "+rosterEntry.getUser()); System.out.println(""); } System.out.println("我的好友列表:======================="); conn.disconnect(); ========================================================================== 聊天窗口输入状态,使用XEP-0085 协议 ------------------------------------ //发送给test1初始文本信息,附带输入状态 Message mess = new Message(); mess.addExtension(new ChatStateExtension(ChatState.active)); mychat.sendMessage(mess); //发送给test1初始文本信息,附带正在输入的状态 Message mess = new Message(); mess.addExtension(new ChatStateExtension(ChatState.composing)); mychat.sendMessage(mess); //发送给test1初始文本信息,附带暂停输入的状态 Message mess = new Message(); mess.addExtension(new ChatStateExtension(ChatState.paused)); mychat.sendMessage(mess); //其他略。。。 //接收的时候 public void processMessage(Chat chat, Message message) { String messageBody = message.getBody(); PacketExtension pe; pe = message.getExtension("composing","http://jabber.org/protocol/chatstates"); if(pe != null){ System.out.println("对方正在输入......"); } pe = message.getExtension("active","http://jabber.org/protocol/chatstates"); if(pe != null){ System.out.println("接收到信息:"+messageBody); } pe = message.getExtension("paused","http://jabber.org/protocol/chatstates"); if(pe != null){ System.out.println("对方已暂停输入"); } pe = message.getExtension("inactive","http://jabber.org/protocol/chatstates"); if(pe != null){ System.out.println("对方聊天窗口失去焦点"); } pe = message.getExtension("gone","http://jabber.org/protocol/chatstates"); if(pe != null){ System.out.println("对方聊天窗口被关闭"); } } ========================================================================== 接收邀请,加入多人聊天房间 ------------------------------------ MultiUserChat.addInvitationListener(conn, new InvitationListener() { @Override public void invitationReceived(XMPPConnection conn, String room, String inviter, String reason, String password, Message message) { MultiUserChat multiUserChat = new MultiUserChat(conn, room); System.out.println("收到来自 "+inviter+" 的聊天室邀请。邀请附带内容:"+reason); try { multiUserChat.join("test2", password); } catch (XMPPException e) { System.out.println("加入聊天室失败"); e.printStackTrace(); } System.out.println("成功加入聊天室"); multiUserChat.addMessageListener(new PacketListener() { @Override public void processPacket(Packet packet) { Message message = (Message)packet; //接收来自聊天室的聊天信息 System.out.println(message.getFrom()+":"+message.getBody()); } }); } //发送信息到聊天室 multiUserChat.sendMessage("新手到来,大家关照!"); }); ========================================================================== 登陆gtalk ------------------------------------ XMPPConnection conn = new XMPPConnection(new ConnectionConfiguration("talk.google.com", 5222, "gmail.com")); conn.connect(); //输入gtalk的账号密码 conn.login("88888888", "8888888888"); Collection<RosterEntry> rosters = conn.getRoster().getEntries(); //获取gtalk上的好友列表 System.out.println("我的好友列表:======================="); for(RosterEntry rosterEntry : rosters){ System.out.print("name: "+rosterEntry.getName()+",jid: "+rosterEntry.getUser()); System.out.println(""); } System.out.println("我的好友列表:======================="); conn.disconnect();
相关推荐
本资料是关于基于Asmack开发的Android即时通讯(IM)客户端源码,适用于学习和设计参考。Asmack是一个开源的XMPP库,它允许开发者在Android平台上构建实时通信应用,如聊天、群聊、文件传输等功能。下面将详细探讨这...
**aSmack IM** **简介** aSmack是基于XMPP(Extensible Messaging and Presence Protocol)协议的一个轻量级即时通讯(IM)库,适用于Java和Android平台。它是一个开源项目,提供了丰富的API来实现XMPP协议的功能...
【标题】"安卓Android源码——(精)基于asmack开发的开源IM客户端.zip" 提供的是一个基于asmack库开发的开源即时通讯(IM)客户端的源代码。ASMack是一个专门为Android平台优化的XMPP(Extensible Messaging and ...
【标题】"基于asmack开发的Android开源IM客户端"是一个Android应用程序源代码,它使用了asmack库来实现即时通讯(IM)功能。Asmack是一个Android平台上的XMPP(Extensible Messaging and Presence Protocol)库,它...
ASMack是一个开源的Java库,专为实现即时通讯(Instant Messaging, IM)协议而设计。这个框架是基于XMPP(Extensible Messaging and Presence Protocol)协议,XMPP是一种开放标准,广泛用于构建实时通信系统,如...
【asmack-master.zip】是一个包含asmack库源代码的压缩包,主要用于Android平台上的即时通讯(IM)开发,尤其适用于基于XMPP(Extensible Messaging and Presence Protocol)协议的应用。XMPP是一种开放标准,广泛...
**asmack4.0.7库** Asmack是一个开源的Java库,它是Smack库的一个分支,专门针对Android平台进行了优化。...通过深入研究源码和API文档,开发者可以更好地利用Asmack来构建自己的IM应用,满足多样化的通信需求。
1. 提供最新的2014-6-20的asmack jar包。 2. 可以参考smack的API文档进行开发。 3. 只是简单地针对openfire服务器进行connect和Login,并下拉了局域网用户数据信息。 4. Demo待完善中……
ASmack即时聊天是一款基于Android平台的即时通讯(IM)应用示例,它利用了XMPP(Extensible Messaging and Presence Protocol)协议来实现用户之间的实时通信。XMPP是一种开放的标准,广泛用于构建即时消息和在线...
Android XMPP例子(Openfire+asmack+spark)是一个典型的基于Android平台的即时通讯(Instant Messaging,IM)应用实现,利用了XMPP协议、Openfire服务器、asmack库以及Spark客户端工具。XMPP(Extensible Messaging ...
Smack是一个流行的、跨平台的XMPP(Extensible Messaging and Presence Protocol)客户端库,用于实现即时通讯(IM)和在线状态服务。在Android开发中,由于原生的Smack库对Android系统的支持有限,因此`asmack`...
Asmack是一个开源的Java库,专为实现XMPP(Extensible Messaging and Presence Protocol)协议而设计,用于即时通讯(IM)和在线状态服务。它是一个轻量级、高效的库,能够帮助开发者在Android平台上构建XMPP应用。...
即时通讯(IM)系统的核心是基于XML流传输协议(XMPP)的。XMPP是一种开放标准,广泛用于构建点对点和多用户间的通信网络。ASMACK库则提供了Android开发者与XMPP服务器交互所需的接口和工具,简化了开发过程。 在...
该资源是一个针对Android平台的开源即时通讯(IM)客户端源码,主要基于ASMACK库进行开发。ASMACK是一个为Android优化的XMPP(Extensible Messaging and Presence Protocol)库,XMPP是一种开放的通信协议,广泛用于...
Android平台上实现IM功能,常常会借助开源库来简化开发工作,如本话题提及的ASMACK库。本文将深入探讨基于Android的XMPP(Extensible Messaging and Presence Protocol)即时通讯实现,以及ASMACK库的应用。 **1. ...
标题"android应用源码精基于asmack开发的Android开源IM客户端.zip"表明这是一个关于Android即时通讯(IM)应用的源代码包,它使用了asmack库进行开发。asmack是一个针对Android平台优化的Smack库实现,Smack是一个...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的开放标准协议,主要用于即时通讯(IM)和实时交互信息。在Android平台上实现XMPP服务,开发者通常会借助于ASMACK库,因为原生的JavaXMPP库Jabber...
标题中的“应用源码(精)基于asmack开发的开源IM客户端.zip”表明这是一个关于即时通讯(IM)应用的开源源码项目,采用ASMACK库作为核心开发工具。ASMACK是一个专门为Android平台优化的XMPP(Extensible Messaging ...
【标题】"openfire+asmack中文api+androidDemo"涉及的是即时通讯(Instant Messaging, IM)技术在Android平台上的实现。Openfire是一款开源的XMPP服务器,而ASMACK是针对Android平台的XMPP库,它允许开发者在Android...