openfire+smack 搭建即时聊天 demo

xiaoxiao2021-02-27  323

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

最新回复(0)