使用Smack与XMPP Server连接的延迟

问题描述

我有一个连接延迟,找不到说明。基本上,在仿真器中与本地计算机的连接花费了将近1分钟,而在物理设备上花费了20s +。我已经尝试了所有我知道的东西,并最终得到了下面的代码。现在设备上的时间大约为15秒,但仅用于连接仍然很多。

我什么都没做,只是在连接。

知道我可以如何优化延迟的人吗?

class XMPPConnectionManager {
    companion object  {
        const val JABBER_DOMAIN = "localhost"
        const val JABBER_URL = "192.168.1.101"
        const val JABBER_RESOURCE = "Resource"
        const val JABBER_PORT = 5222
        const val CONNECTION_TIMEOUT = 300
        const val REPLY_TIMEOUT = 30000L
    }


    private val conn: XMPPTCPConnection by lazy {
        val builder = XMPPTCPConnectionConfiguration.builder()
            .setXmppDomain(JidCreate.domainBareFrom(JABBER_DOMAIN))
            .setHostAddress(InetSocketAddress(JABBER_URL,JABBER_PORT).address)
            .setResource(JABBER_RESOURCE)
            .setCompressionEnabled(true)
            .setSendPresence(false)
            .setSecurityMode(ConnectionConfiguration.SecurityMode.disabled) //TODO: Enable it
            //.enableDefaultDebugger()
            .setConnectTimeout(CONNECTION_TIMEOUT)

        val connection = XMPPTCPConnection(builder.build())
        connection.replyTimeout = REPLY_TIMEOUT

        //auto reconnection
        val reconnectionManager = ReconnectionManager.getInstanceFor(connection)
        reconnectionManager.enableAutomaticReconnection()
        reconnectionManager.setReconnectionPolicy(ReconnectionManager.ReconnectionPolicy.RANDOM_INCREASING_DELAY)

        connection.connect()

        return@lazy connection
    }

    fun login(username: String?,password: String?): Boolean {
        try {
            if (!conn.isConnected) {
                conn.connect()
            }

            if(!conn.isAuthenticated){
                conn.login(username,password)
                //Setup OX-IM and other listeners
            }

        } catch (e: Exception) {
            return false
        }
        return true
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)