java smack 例子_Java用Smack实现简单地通过OpenFire与其他人进行聊天

import java.util.Objects;

import org.jivesoftware.smack.AbstractXMPPConnection;

import org.jivesoftware.smack.ConnectionConfiguration.SecurityMode;

import org.jivesoftware.smack.chat.Chat;

import org.jivesoftware.smack.chat.ChatManager;

import org.jivesoftware.smack.chat.ChatManagerListener;

import org.jivesoftware.smack.chat.ChatMessageListener;

import org.jivesoftware.smack.packet.Message;

import org.jivesoftware.smack.tcp.XMPPTCPConnection;

import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;

public class SmackClient {

public static void main(String[] args) {

try {

String serviceName = "XXXXXX";

String host = "192.168.0.1";

int port = 5222;

String myUsername = "user1";

String myPassword = "123456";

String friendUsername = "user2";

XMPPTCPConnectionConfiguration.Builder builder = XMPPTCPConnectionConfiguration.builder();

builder.setUsernameAndPassword(myUsername, myPassword);

builder.setServiceName(serviceName);

builder.setHost(host);

builder.setPort(port);

builder.setSecurityMode(SecurityMode.disabled);

builder.setDebuggerEnabled(false);

XMPPTCPConnectionConfiguration config = builder.build();

AbstractXMPPConnection c = new XMPPTCPConnection(config);

c.connect();

c.login();

System.out.println("Authenticated = " + c.isAuthenticated());

ChatManager chatmanager = ChatManager.getInstanceFor(c);

Chat newChat = chatmanager.createChat(friendUsername + "@" + serviceName);

final ChatMessageListener messageListener = new ChatMessageListener() {

@Override

public void processMessage(Chat arg0, Message message) {

String messageBody = message.getBody();

if (Objects.nonNull(messageBody)) {

try {

arg0.sendMessage("你刚说的是:" + messageBody);

} catch (Exception e) {

}

}

}

};

ChatManagerListener chatManagerListener = new ChatManagerListener() {

@Override

public void chatCreated(Chat chat, boolean arg1) {

chat.addMessageListener(messageListener);

}

};

chatmanager.addChatListener(chatManagerListener);

try {

newChat.sendMessage("我来咯");

} catch (Exception e) {

System.out.println("Error Delivering block");

}

while (true)

;

} catch (Exception e) {

e.printStackTrace();

}

}

}

附件为所需要的所有类库Jar包。

原文:http://zl1030.blog.51cto.com/274507/1846938

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值