openfire+smack 简单的 发送消息 demo及各种错误解决方案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

昨天搭建好了,openfire准备用写一个smack写一个发送消息的demo,为了方便接收端使用Spark。使用eclipse的同学注意,创建项目时注意要吧smack与smackx两个包都导进来,只导入smack的话会出现一个stream:error(conflict)的错误,smackx中包含一些xml转java流的类。运行项目时,如果端口被占用的话会出现一个couldn'tsetuplocalSOCKS5proxyonport7777的错误,只需要找到smack里的config.xml在其中把端口改掉就可以。解决了这两个问题,项目大概可以运行了。发送端代码如下publicstaticvoidmain(String[]main){XMPPConnection.DEBUG_ENABLED=true;//开启调试XMPPConnectionconn=newXMPPConnection(127.0.0.1);//这里是服务器的地址,在本机上搭建openfire的话用127.0.0.1就可以try{conn.connect();conn.login(wyl091256,nihaoa);//发送端的用户名密码Chatmychat=conn.getChatManager().createChat(wyl@20110710-2249,//接收端的JID,这个JID是要加域的,不然会报错newMessageListener(){@OverridepublicvoidprocessMessage(Chatchat,Messagemessage){StringmessageBody=message.getBody();System.out.println(收到信息:+messageBody++message.getFrom());}});System.out.println(我的好友列表:=======================);CollectionRosterEntryrosters=conn.getRoster().getEntries();for(RosterEntryrosterEntry:rosters){System.out.print(name:+rosterEntry.getName()+,jid:+rosterEntry.getUser());//此处可获取用户JIDSystem.out.println();}System.out.println(我的好友列表:=======================);mychat.sendMessage(fuck!);//发送信息conn.disconnect();//断开连接System.out.println(finish);}catch(Exceptione){System.out.println(wrong);}}用户的JID一定要写对,如果不知道你自己的域是啥,可以通过roster.getUser()来获取某个好友的JID不然在发送信息的时候,会出现这个错误,openfire很废物,很多错都报这个remote-server-not-found,很没有参考性。messageid=w5Cne-4to=wyl091256@20110710-2249/Smackfrom=wyltype=errorthread3Fpv00/threaderrorcode=404type=CANCELremote-server-not-foundxmlns=urn:ietf:params:xml:ns:xmpp-stanzas//error/message域这个东西,其实就是个安全性高级点的工作组,openfire好像会自动建立一个域,域名与时间有关。不要忘记关闭,connection。最后,登陆spark等待接受信息,运行工程,就会成功收到信息啦。

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功