- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 aSmack 实现的应用程序,(8-4.0.5),据我们所知,它有一个内部重新连接管理,但它并不令人满意,因为有时我们应该等待 5 分钟才能重新连接,而我们现在知道这是一个这样做的好时机,所以我已经实现了这个:
private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);
if(isNetworkAvailable()){
if(MyService.myServiceInstance!=null){
if(!MyService.connection.isConnected() || !MyService.connection.isAuthenticated()){
MyService.myServiceInstance.performReconnect();
// Which goes to Connect() and Authenticate()
}
}
LMApplication.getInstance().getPresistentJobManager().onNetworkChange(true);
}
}
};
但问题是有时他们都尝试同时连接(我的经理和内置经理),结果是,他们下次一次又一次地重新连接,每次我都收到此错误:
11-10 14:58:09.069: W/PacketWriter(26439): Exception writing closing stream element
11-10 14:58:09.069: W/PacketWriter(26439): java.io.IOException: BufferedWriter is
closed
11-10 14:58:09.069: W/PacketWriter(26439): at
java.io.BufferedWriter.checkNotClosed(BufferedWriter.java:130)
11-10 14:58:09.069: W/PacketWriter(26439): at
java.io.BufferedWriter.flush(BufferedWriter.java:122)
11-10 14:58:09.069: W/PacketWriter(26439): at
org.jivesoftware.smack.util.ObservableWriter.flush(ObservableWriter.java:44)
11-10 14:58:09.069: W/PacketWriter(26439): at
org.jivesoftware.smack.tcp.PacketWriter.writePackets(PacketWriter.java:190)
11-10 14:58:09.069: W/PacketWriter(26439): at
org.jivesoftware.smack.tcp.PacketWriter.access$000(PacketWriter.java:40)
11-10 14:58:09.069: W/PacketWriter(26439): at
org.jivesoftware.smack.tcp.PacketWriter$1.run(PacketWriter.java:77)
我猜是因为 1 已经完成工作并关闭了编写器,而另一个看到编写器已关闭,断开连接!就像两个嫉妒的 child !
那么我能在这里做什么,比如如何禁用影响或强制重新连接?
最佳答案
我不得不删除 Samack 自动重新连接系统,我完全自己做了,这样我的应用程序就获得了稳定性。
关于android - aSmack,如何强制重新连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26843087/
我正在使用 Asmack API 在 android 上创建一个多用户聊天室,我想通过使用获取所有托管的房间 MultiUserChat.getHostedRooms(connection, serv
我正在基于 asmack 库在 Android 上开发聊天应用程序。我创建了 1 个用户并在好友列表中添加了 3 个 friend 。当我使用名册显示好友列表时。我无法在好友列表中获取所有用户,只有
我正在尝试为我的聊天应用程序实现离线文件扩展。我正在使用 PacketExtension 和 EmbeddedExtensionProvider 添加和解析自定义扩展。我可以看到在发送消息时添加了值和
基本上我有一个运行整个项目的主类。该代码运行良好,但一旦应用程序失去焦点,它就会变得不活动。我想知道我将如何让它成为一项服务。一个会在启动时启动的。 该应用程序将是一种用于通知的单向消息系统。即 De
我有一个 aSmack 实现的应用程序,(8-4.0.5),据我们所知,它有一个内部重新连接管理,但它并不令人满意,因为有时我们应该等待 5 分钟才能重新连接,而我们现在知道这是一个这样做的好时机,所
我正在我正在开发的 Android 应用程序中使用 asmack xmpp 客户端,并希望使用压缩。我找到了 setCompressionEnabled,但当我尝试它时,它告诉我我需要 smackx。
我正在使用 asmack 库,并面临多用户聊天请求的问题。 发送 session 请求时,它不会进入邀请监听器,尽管相同的代码在 java 中使用 smack 库。 调试时它显示我正在接收消息,但没有
我完全按照答案建议的操作( Asmack not loading VCard ),但它仍然不起作用。 DEBUG 输出显示 Smack 收到带有 VCard 信息的数据包,但随后在 https://g
我正在努力让 aSmack 在我的项目中发挥作用。在 eclipse 中创建一个标准项目,添加 jar 以构建路径/库。开始使用 XMPP 类,但我不确定我是否应该做其他事情来正确设置项目(稍后再说)
我正在开发 Android 平台上的聊天应用程序。我想通过 xmpp 库中的 PubSub 共享我的当前位置。谁能给我代码,说明如何使用 pubsub API。 提前致谢。 最佳答案 Smack do
我建立了一个基于 aSmack 的应用程序,显然所有关于连接的东西都在一个服务中运行,所以保持它的连接是非常重要的,因为我们知道在后台运行的服务可能会在手机资源不足时被杀死(通常是 Ram),因此在服
我在我的 android 应用程序中使用 aSmack 库进行群聊,我的问题是有时当连接丢失时,ReconnectionManager 无法重新连接并出现此错误: java.lang.IllegalT
我在通过 XMPP 发送图像时遇到了一个问题。下面是我完成的代码 fragment 。我不知道代码有什么问题。 Message msg = new Message(emailId, Message.T
我不熟悉 smack 库的使用和制作一个聊天应用程序。当我添加 friend 时,从这段代码..,它有效。 public void Addcontact() { Roster.setDefaul
我正在使用 Asmack 的二进制版本(我会尽快构建它,因为我第一次尝试时遇到了问题)。我还设置了自己的 ejabberd 服务器。 当我尝试加载一些联系人 VCard 时,服务器返回信息但 Asma
我尝试用 asmack 编写一个 android 演示。存在名为 “host-unknown” 的错误。我该如何解决? 这是我在 LogCat 中看到的: 03-16 08:31:10.671: I/
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
我遇到了 XML 节中缺少属性的问题。根据服务器端的日志文件,我可以确认属性是从客户端发送到服务器的。此外,当服务器将 XML 节传递给接收者时,该属性也存在(仍然基于服务器端的日志文件)。问题是,当
我无法使用 asmack 接收文件,但我能够发送文件。下面是接收文件的代码,请告诉我我做错了什么 ServiceDiscoveryManager serv= new Ser
我正在使用 openfire 和 asmack 库。我正在 android 聊天应用程序中实现在线 和离线 按钮。如何将我的在线状态设置为“不可用”。 注意:我不想使用connection.disco
我是一名优秀的程序员,十分优秀!