IM ASmack
2013年02月25日
⁄ 综合
⁄ 共 4691字 ⁄ 字号
小 中 大
-
===============================================================
-
主动发送信息给某个用户
-
------------------------------------
-
XMPPConnection.DEBUG_ENABLED = true;
-
-
XMPPConnection conn = new XMPPConnection("127.0.0.1");
-
conn.connect();
-
-
conn.login("test2@127.0.0.1", "123456");
-
-
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);
-
}
-
});
-
-
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 协议
-
------------------------------------
-
-
Message mess = new Message();
-
mess.addExtension(new ChatStateExtension(ChatState.active));
-
mychat.sendMessage(mess);
-
-
Message mess = new Message();
-
mess.addExtension(new ChatStateExtension(ChatState.composing));
-
mychat.sendMessage(mess);
-
-
-
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);