Xmpp 我想通过ejabberd中的Smack API客户端发送附加参数和消息

Xmpp 我想通过ejabberd中的Smack API客户端发送附加参数和消息,xmpp,ejabberd,Xmpp,Ejabberd,我正在使用Ejabberd作为XMPP服务器,并在smack API中创建XMPP客户端。我想发送附加参数和消息 我的代码如下: public static void main(String[] args) throws SmackException,IOException,XMPPException { XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()

我正在使用Ejabberd作为XMPP服务器,并在smack API中创建XMPP客户端。我想发送附加参数和消息

我的代码如下:

public static void main(String[] args) throws SmackException,IOException,XMPPException {

         XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
                  .setResource("Smack")
                  .setSecurityMode(SecurityMode.disabled)
                  .setServiceName("localhost")
                  .setHost("localhost")
                  .setPort(Integer.parseInt("5222"))
                  .build();
                AbstractXMPPConnection conn = new XMPPTCPConnection(config);
                try {                                           
                    conn.setPacketReplyTimeout(10000);
                    SASLAuthentication.unBlacklistSASLMechanism("PLAIN");
                    SASLAuthentication.blacklistSASLMechanism("SCRAM-SHA-1");
                    SASLAuthentication.blacklistSASLMechanism("DIGEST-MD5");
                    //SASLAuthentication.
                    conn.connect();
                    conn.login("test1@localhost","123456");
                    System.out.println("login successfull");
                    Message message = new Message();
                    String stanza = "i am vip";                 
                    message.setBody(stanza);
                    stanza+= "<type>.jpg</type>";
                    ChatManager manager = ChatManager.getInstanceFor(conn);
                       manager.createChat("vipul@localhost").sendMessage(message);
                    message.setBody(stanza);
                    System.out.println("Message Sent");

                } catch (Exception e) {
                    e.printStackTrace();
                }

    }
publicstaticvoidmain(字符串[]args)抛出smakeException、IOException、xmppeException{
XMPPTCPConnectionConfiguration=XMPPTCPConnectionConfiguration.builder()
.setResource(“Smack”)
.setSecurityMode(SecurityMode.disabled)
.setServiceName(“本地主机”)
.setHost(“本地主机”)
.setPort(Integer.parseInt(“5222”))
.build();
AbstractXMPPConnection conn=新的XMPPTCPConnection(配置);
试试{
conn.setPacketReplyTimeout(10000);
Saslauthentification.平淡无奇的Saslmechanism(“平原”);
SASLAuthentication.黑名单SASLMEchanism(“SCRAM-SHA-1”);
SASLAuthentication.黑名单SASLMEchanism(“DIGEST-MD5”);
//萨斯劳认证。
连接();
conn.login(“test1@localhost","123456");
System.out.println(“登录成功”);
消息消息=新消息();
字符串节=“我是vip”;
消息。setBody(节);
节+=“.jpg”;
ChatManager=ChatManager.getInstanceFor(conn);
manager.createChat(“vipul@localhost“)。发送消息(消息);
消息。setBody(节);
System.out.println(“已发送消息”);
}捕获(例外e){
e、 printStackTrace();
}
}
通过这段代码,我可以在xmpp节中添加类型,但我认为这不是更好的方法。所以我需要帮助发送附加参数和消息。 如果我得到解决方案,我将不胜感激。
谢谢

您可以添加这样的附加参数-

Message message = new Message();
                    String stanza = "i am vip";                 
                    message.setBody(stanza);
 message.addBody("customtag","Custom tag value");
 message.addBody("customtag1","Custom tag value1");
你可以像这样得到它-

String customtageValue= message.getBody("customtag");

您可以添加这样的附加参数-

Message message = new Message();
                    String stanza = "i am vip";                 
                    message.setBody(stanza);
 message.addBody("customtag","Custom tag value");
 message.addBody("customtag1","Custom tag value1");
你可以像这样得到它-

String customtageValue= message.getBody("customtag");