smack api 转载未测试
===============================================================
主动发送信息给某个用户
------------------------------------
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();
==========================================================================
smack api 转载未测试的更多相关文章
- HTC Vive前置摄像头API(未测试)
/*WebCamTexture:网络摄像头材质 WebCamTexture.Play() 播放: WebCamTexture.Pause() 暂停: WebCamTexture.Stop() 停止:* ...
- 转载【微信支付】jsapi支付之传参问题(使用微信官方SDK之PHP版本) V3之WxpayPubHelper 亲测有效,V3WxpayAPI_php_v3.zip版未测试,理论上也是一样的。
本文转载至:http://blog.csdn.net/geeklx/article/details/51146151 (微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请 ...
- C++ primer学习记录(个人猜想未测试版本)
学习版本:第五版. 本博文主要记录个人曾经并不知晓知识细节. 因为linux下的编译环境还未进行学习.所以实际代码测试将在今后完成. 红色:需确认. 蓝色:重点. 1)const对象设定为仅在文件内有 ...
- 使用jMeter对基于SAP ID service进行Authentication的Restful API进行并发测试
这篇文章本来Jerry只在SAP社区上写了英文版的,可以通过点击文末的"阅读原文"获得.后来有两位做Marketing Cloud开发的德国同事,写邮件询问关于文章的更多细节,声称 ...
- 利用eolinker实现api接口mock测试(mock server)
转载:http://blog.csdn.net/naicha_qin/article/details/78276172 前后端分离或者是进行单元测试的时候,必须要用mock api替换掉第三方调用或者 ...
- consolel API大全-附测试结果
f 简介: JS中默认没有console对象, 这是某些浏览器提供的浏览器内置对象, 低版本IE就没有, 其他主流浏览器应该都有.它能看到结构话的东西,如果是alert,淡出一个对象就是[object ...
- Web API 自动生成帮助文档并使用Web API Test Client 测试
之前在项目中有用到webapi对外提供接口,发现在项目中有根据webapi的方法和注释自动生成帮助文档,还可以测试webapi方法,功能很是强大,现拿出来与大家分享一下. 先看一下生成的webapi文 ...
- [转载]Macaca 测试 Android 应用:UIAutomator
在用macaca进行自动化测试,想试一下移动端测试,看到这篇文章,尝试一下. 前言 用 Macaca 可以快速.便捷地进行安卓 native 的自动化测试,用简洁的 js 语法,写下用例,然后执行 M ...
- Asp.net Web Api进行Nunit测试
有两种方式 1.模拟Web请求. 2.直接本地调用Api接口 但是由于本地直接调用没有模拟请求环境,所以request为null public static HttpResponseMessage C ...
随机推荐
- js向后台传递对象
js: }; $.ajax({ url: "/.../...", type: "POST", async: false, data: JSON.stringif ...
- 当Design Support Library遇上RecycleView
近期对Design Support Library中的一些新组件做了些研究,当中涉及到CoordinatorLayout.AppBarLayout.CollapsingToolbarLayout,为了 ...
- nginx for windows 配置多域名反向代理
调试了很久...哦耶 共享出来吧 其实 nginx反向代理同一ip多个域名,给header加上host就可以了 upstream test.test.cn { server 119. ...
- BigDecimal的String类型
java本身对浮点型的计算会丢失精度,这个一定要注意,必须要用BigDecimal的String类型才能解决精度的问题. BigDecimal一共有四个构造方法: 我们在计算商品价格的时候,一定要用B ...
- HDU 2242 考研路茫茫——空调教室(边双连通)
HDU 2242 考研路茫茫--空调教室 题目链接 思路:求边双连通分量.然后进行缩点,点权为双连通分支的点权之和,缩点完变成一棵树,然后在树上dfs一遍就能得出答案 代码: #include < ...
- ubuntu16.04下Cmake学习一
根据网上的资料,我总结了一下,一个工程应该有根目录(bin)存放可执行文件,头文件目录(include)存放头文件,源码文件(src)存放你的算法,还需要一个库文件夹存放你编译的静态库或者动态库.然后 ...
- php程序执行过程--非宏观和微观而是写的程序一行一行的路径----利用xdebug了解一段程序的执行过程----覆盖率
1.xdebug_start_code_coverage();//在需要开始跟踪程序执行路径时使用 2.var_dump(xdebug_get_code_coverage());//在结尾使用打印程序 ...
- warning: mysql-community-libs-5.7.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5
1.错误描写叙述 [root@ mysql]# rpm -ivh mysql-community-libs-5.7.11-1.el7.x86_64.rpm warning: mysql-communi ...
- 转:MSN君最后的十个瞬间
五年前我用过MSN五年.在一家ERP公司当程序猿的时候我甚至在业余时间做过一款MSN订餐机器人. 转完这篇文章.就是真正跟MSN的bye bye了. 转自:www.gogo.cn 今天是一个普通的周五 ...
- Java提高(二)---- HashTable
阅读博客 java提高篇(二五)—–HashTable 这篇博客由chenssy 发表与2014年4月,基于源码是jdk1.7 ========================== 本文针对jdk1. ...