基于smack3.0.4的GoogleTalk机器人

 
   
GoogleTalk使用的是Jabber/XMPP 协议。

参考资料:

smack文档: http://www.igniterealtime.org/builds/smack/docs/latest/documentation/

smack下载: http://www.igniterealtime.org/downloads/index.jsp#smack

       (1)http://www.douban.com/group/topic/3351341/( 用Eclipse RCP & ECF 实现GoogleTalk

在smack2.0中,有一个org.jivesoftware.smack.GoogleTalkConnection类,并且可以很方便 的用这个类对GoogleTalk进行操作。smack3.0版本改动很大,GoogleTalkConnection类也失踪了。

在这里写一个简单的基于smack3.0的GoogleTalk机器人的例子,希望对大家有所帮助。

机器人描述:

刚开始会告诉你"早上好!",之后你说的每一句话它会重复一遍。但是当你说"help"时,它会说:“您好,感谢使用GoogleTalk机器人,我的制 作者是Joy!”,当你说"bye"时,它会对你说"再见,祝你好运!",但是说完再见后它并没有下线,因为我在项目的应用中是要求机器人一直在线的。

文件:GoogleTalkTest.java

import org.jivesoftware.smack.ChatManager;
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.MessageListener;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.packet.Message;

public class GoogleTalkTest {

public static void main(String[] args){
try {
XMPPConnection con = new XMPPConnection(
new ConnectionConfiguration("talk.google.com", 5222, "gmail.com"));
con.connect();
con.login("username", "password");
ChatManager chatManger = con.getChatManager();
Chat chat = chatManger.createChat("[email protected]",new GoogleTalkMessageListener());

chat.sendMessage("早上好!");
while (true) {
}
// con.disconnect();
} catch (XMPPException e) {
System.out.println(e.getMessage());
}
}
}

class GoogleTalkMessageListener implements MessageListener{

public void processMessage(Chat chat, Message message) {
String msg=message.getBody();
if(msg.equals("help")){
try {
chat.sendMessage("您好,感谢使用GoogleTalk机器人,我的制作者是Joy!");
} catch (XMPPException e) {
e.printStackTrace();
}
}
else if(msg.equals("bye")){
try {
chat.sendMessage("再见,祝你好运!");
} catch (XMPPException e) {
e.printStackTrace();
}
} else
try {
chat.sendMessage(msg);
} catch (XMPPException e) {
e.printStackTrace();
}
}

}

代码已经过测试,确保可以运行,但是运行前要把username改成你的GoogleTalk帐号哦,还要记得把对方的帐号改掉哦,不然就发消息给我啦!(需要改动部分,已经在文中加粗表示)。

你可能感兴趣的:(eclipse,String,smack,Class,文档,import)