如何管理 XMPP 连接
How to manage XMPP connection
我正在设计一个聊天应用程序,使用 ejabberd 作为 XMPP 服务器和 Smack 4.1 API。下面是管理连接的代码片段。
// Create a connection to the server.com server on 5222 port.
XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
.setUsernameAndPassword("user", "password")
.setServiceName("server.com")
.setHost("server.com_ip")
.setPort(5222)
.setSecurityMode(SecurityMode.disabled)
.build();
XMPPTCPConnection conn = new XMPPTCPConnection(config);
try {
conn.connect();
System.out.println("Connection established.");
conn.login();
System.out.println("Logged in.");
} catch (SmackException | IOException | XMPPException e) {
System.out.println("Connection not established: " + e.getMessage());
}
聊天和 muc 的一些处理。
// Disconnect
conn.disconnect();
System.out.println("Connection Closed.");
我的要求:
- 一旦用户登录到应用程序,他们可能几个月都不会退出。正是 Whatsapp 的工作方式。
我的问题是:
- 只要用户登录就保持连接打开是个好主意吗?
- 如果不是,那么为每条聊天消息打开和关闭连接是个好主意吗?
需要建议:
- 处理与 XMPP 服务器的连接的最有效方法是什么?
虽然问题不同,我的回答可能会有帮助(评论也一样),但简而言之:
为每条消息打开和关闭连接不是你应该做的。
关于保持连接空闲(如 WhatsApp),这是一种选择(查看 Services),另一种方法是在您的应用程序启动时连接并在它启动时保持连接,并在应用不是 运行.
时使用推送通知
另一种选择是两者结合(更接近于 WhatApp 的功能)。
希望对您有所帮助。
我正在设计一个聊天应用程序,使用 ejabberd 作为 XMPP 服务器和 Smack 4.1 API。下面是管理连接的代码片段。
// Create a connection to the server.com server on 5222 port.
XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
.setUsernameAndPassword("user", "password")
.setServiceName("server.com")
.setHost("server.com_ip")
.setPort(5222)
.setSecurityMode(SecurityMode.disabled)
.build();
XMPPTCPConnection conn = new XMPPTCPConnection(config);
try {
conn.connect();
System.out.println("Connection established.");
conn.login();
System.out.println("Logged in.");
} catch (SmackException | IOException | XMPPException e) {
System.out.println("Connection not established: " + e.getMessage());
}
聊天和 muc 的一些处理。
// Disconnect
conn.disconnect();
System.out.println("Connection Closed.");
我的要求:
- 一旦用户登录到应用程序,他们可能几个月都不会退出。正是 Whatsapp 的工作方式。
我的问题是:
- 只要用户登录就保持连接打开是个好主意吗?
- 如果不是,那么为每条聊天消息打开和关闭连接是个好主意吗?
需要建议:
- 处理与 XMPP 服务器的连接的最有效方法是什么?
虽然问题不同,
为每条消息打开和关闭连接不是你应该做的。
关于保持连接空闲(如 WhatsApp),这是一种选择(查看 Services),另一种方法是在您的应用程序启动时连接并在它启动时保持连接,并在应用不是 运行.
时使用推送通知另一种选择是两者结合(更接近于 WhatApp 的功能)。
希望对您有所帮助。