Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何管理XMPP连接_Xmpp_Xmppframework - Fatal编程技术网

如何管理XMPP连接

如何管理XMPP连接,xmpp,xmppframework,Xmpp,Xmppframework,我正在设计一个聊天应用程序,使用ejabberd作为XMPP服务器和Smack 4.1 API。下面是用于管理连接的代码段 //在5222端口上创建到server.com服务器的连接。 XMPPTCPConnectionConfiguration=XMPPTCPConnectionConfiguration.builder() .setUserName和password(“用户”、“密码”) .setServiceName(“server.com”) .setHost(“server.com_i

我正在设计一个聊天应用程序,使用ejabberd作为XMPP服务器和Smack 4.1 API。下面是用于管理连接的代码段

//在5222端口上创建到server.com服务器的连接。
XMPPTCPConnectionConfiguration=XMPPTCPConnectionConfiguration.builder()
.setUserName和password(“用户”、“密码”)
.setServiceName(“server.com”)
.setHost(“server.com_ip”)
.设置端口(5222)
.setSecurityMode(SecurityMode.disabled)
.build();
XMPPTCPConnection conn=新的XMPPTCPConnection(配置);
试一试{
连接();
System.out.println(“已建立连接”);
conn.login();
System.out.println(“登录”);
}捕获(SmackException | IOException | XMPPException e){
System.out.println(“未建立连接:+e.getMessage());
}
一些用于聊天和muc的处理

//断开连接
连接断开();
System.out.println(“连接关闭”);
我的要求:

  • 一旦用户登录到该应用程序,他们可能几个月都不会一次注销。正是Whatsapp的工作方式
我的问题是:

  • 只要用户登录,保持连接打开是一个好主意吗
  • 如果不是,那么打开和关闭每条聊天信息的连接是否是一个好主意
需要建议:

  • 处理与XMPP服务器的连接最有效的方法是什么

虽然问题不同,但我的回答可能会有所帮助(也有评论),但简而言之:

打开和关闭每条消息的连接不是您应该做的事

关于保持连接空闲(如WhatsApp),这是一个选项(查看),另一个选项是在应用程序启动时连接,并在应用程序启动时保持连接,并在应用程序未运行时使用推送通知

另一种选择是两者的结合(更接近TAPP的做法)


希望这能有所帮助。

我自己也有类似的问题。Iam使用openfire xmpp服务器制作即时消息应用原型。来自一个一无所知的地方,我说处理连接的最好方法是在一段时间后关闭连接,如果不使用。兄弟,你的问题有什么更新吗?实际上,我面临着与xmpp@vinod1建立连接相关的问题。使用Android服务保持连接始终处于活动状态,或2。如果应用处于打开状态,请保持连接处于活动状态;如果应用处于关闭状态,请使用推送通知。