Mercury-IM/xmpp/src/main/java/org/mercury_im/messenger/transport/xmpp/XmppTcpConnectionFactory.java

37 lines
1.5 KiB
Java
Raw Normal View History

2019-11-18 23:51:27 +01:00
package org.mercury_im.messenger.transport.xmpp;
2019-11-16 09:58:00 +01:00
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.tcp.XMPPTCPConnection;
import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;
import org.jxmpp.jid.EntityBareJid;
import org.jxmpp.jid.impl.JidCreate;
2019-11-18 23:51:27 +01:00
import org.mercury_im.messenger.Messenger;
import org.mercury_im.messenger.entity.Account;
import org.mercury_im.messenger.entity.PasswordAuthentication;
2019-11-16 09:58:00 +01:00
public class XmppTcpConnectionFactory extends XmppConnectionFactory<XMPPTCPConnectionConfiguration> {
2019-11-16 09:58:00 +01:00
public XmppTcpConnectionFactory(Messenger messenger) {
super(messenger);
}
@Override
protected XMPPTCPConnectionConfiguration getConfiguration(Account account) {
XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder();
configBuilder.setConnectTimeout(20 * 1000);
if (account.getAuthentication() instanceof PasswordAuthentication) {
PasswordAuthentication authPassword = (PasswordAuthentication) account.getAuthentication();
EntityBareJid accountAddress = JidCreate.entityBareFromOrThrowUnchecked(account.getAddress());
configBuilder.setXmppAddressAndPassword(accountAddress, authPassword.getPassword());
}
return configBuilder.build();
}
@Override
protected XMPPConnection createXmppConnection(XMPPTCPConnectionConfiguration configuration) {
return new XMPPTCPConnection(configuration);
2019-11-16 09:58:00 +01:00
}
}