1.openfire openfire版本为 4.1.3 关于openfire的配置网上有很多资料,可以找一个配置一下。 这里遇到的问题是,我在配置的时候把端口号从9090,9091改为了19090,19091,导致配置完成的时候无法打开管理控制台,这里需要重启一下电脑 2.smack smack的版本为4.2.0 网上看到的建立链接的方式有下面两种 一 XMPPConnection connection = new XMPPConnection("wang-think"); 二 ConnectionConfiguration config = new ConnectionConfiguration("127.0.0.1", 5222); XMPPConnection connection = new XMPPConnection(config); 但在4.2上无法使用。 通过看API和查阅一些错误,实现的是 Builder config = XMPPTCPConnectionConfiguration.builder(); config.setHost("127.0.0.1"); config.setPort(5222); DomainBareJid serviceName = JidCreate.domainBareFrom("bbb") ; //服务器名 config.setServiceName(serviceName); config.setHostAddress(InetAddress.getByName("bbb")); //服务器名 config.setUsernameAndPassword("test1", "111111"); config.setResource("resource"); config.setSecurityMode(XMPPTCPConnectionConfiguration.SecurityMode.disabled); XMPPTCPConnection xmppCon = new XMPPTCPConnection(config.build()); xmppCon.connect(); xmppCon.login(); 上面的代码可以实现登陆 关于发送消息 EntityBareJid jid = JidCreate.entityBareFrom("aaa@bbb"); //需要链接的用户名@服务器名 Chat chat = chatManager.createChat(jid); chat.getThreadID(); chat.sendMessage("test"); 关于接收消息 添加一个监听 ChatManager chatManager = ChatManager.getInstanceFor(xmppCon); ChatManagerListener chatManagerListener = new ChatManagerListener() { @Override public void chatCreated(Chat chat, boolean createdLocally) { chat.addMessageListener(new ChatMessageListener() { @Override public void processMessage(Chat chat, Message message) { if(message.getBody()!=null) { System.out.println(message.getBody()); } } }); } }; chatManager.addChatListener(chatManagerListener); 如果写demo的话,注意后面加一个循环,避免程序结束,无法接收消息 while (true) { Thread.sleep(50);
}
关于测试的话,可以用spark,比较方便。
转载请注明原文地址: https://www.6miu.com/read-1581.html