Articles of asmack

在切换数据连接时,Android上的XMPP消息丢失(例如,转动Wifi,GSM Wifi切换)

我在android中开发一个聊天应用程序。 使用XMPP服务器。 PHP服务器已迁移到ejabber。 我的通知在所有情况下都能正常运行 但在一个案例中,我正在丢失XMPP消息。 事实上,我没有收到通知。 详细说来,我正在关闭WiFi或数据连接。 关闭WiFi或数据连接后发送给我的任何通知都没有收到。 在我打开WiFi或数据连接后,我无法收到发送给我的消息。 我已经在后台实施了服务。 这使得xmpp连接永远存在。 我关闭WiFi连接时收到此错误。 java.net.SocketException: sendto failed: EPIPE (Broken pipe) java.net.SocketException: recvfrom failed: ETIMEDOUT (Connection timed out) at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:506) at libcore.io.IoBridge.sendto(IoBridge.java:475) at java.net.PlainSocketImpl.write(PlainSocketImpl.java:508) at java.net.PlainSocketImpl.access$100(PlainSocketImpl.java:46) at java.net.PlainSocketImpl$PlainSocketOutputStream.write(PlainSocketImpl.java:270) at java.io.OutputStreamWriter.flushBytes(OutputStreamWriter.java:167) at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:158) at java.io.BufferedWriter.flush(BufferedWriter.java:124) at org.jivesoftware.smack.PacketWriter.writePackets(PacketWriter.java:286) at org.jivesoftware.smack.PacketWriter.access$12(PacketWriter.java:270) at org.jivesoftware.smack.PacketWriter$1.run(PacketWriter.java:137) Caused by: libcore.io.ErrnoException: sendto failed: EPIPE (Broken pipe) […]

如何获取传入的xmpp消息的时间戳?

我正在使用aSmack库与远程xmpp服务器进行通信。 我能够发送/接收消息,但我想获取传入消息的时间戳。 你能告诉我,有可能吗? 因为我找不到关于这个问题的任何信息。 提前致谢

启用流管理asmack android

我正面临使用XEP-0198流管理的问题。 基本上,我想在互联网断开连接并且服务器仍然在线存在客户端时,在Android上启用此消息丢弃问题。 为了解决这个问题,我想使用XEP-0198,它使用请求和确认过程。 你可以在这里find更多。 基本上我使用sm:3为此。 问题是,当我设置 XMPPConnection.DEBUG_ENABLED=true; 我得到sm:3在日志中是asmack的内部但我无法通过连接任何packetListner得到它。 这就是asmack调试打印内容: 这是我从packetFilter得到的: 我曾经通过查看聊天安全和yaxim的代码尝试过自定义数据包filter但是我没有得到如何在我的代码中得到这个以便我可以将现在收到的数据包的数量返回到服务器,以便服务器可以将任何丢失的数据包发回给我。 我还通过添加以下代码为此配置了提供程序管理器: addSimplePacketExtension(“sm”, URN_SM_3); addSimplePacketExtension(“r”, URN_SM_3); addSimplePacketExtension(“a”, URN_SM_3); addSimplePacketExtension(“enabled”, URN_SM_3); addSimplePacketExtension(“resumed”, URN_SM_3); addSimplePacketExtension(“failed”, URN_SM_3); private static final String URN_SM_3 = “urn:xmpp:sm:3”; private static void addSimplePacketExtension(final String name, final String namespace) { Log.e(“adding simple packet extension”, namespace+”—“+name); ProviderManager.getInstance().addExtensionProvider(name, namespace, new PacketExtensionProvider() { public PacketExtension parseExtension(XmlPullParser parser) […]

XMPP aSmack – 如何获取当前用户状态(离线/在线/离开/等)?

我是android的新手xmpp / asmack。 谁能帮助我获得用户朋友的存在(名单) 我用这个: Presence availability = roster.getPresence(user); Mode userMode = availability.getMode(); 我还应该做些什么来获取我名单中列出的每个用户的可用性状态。

将Smack与Android Studio项目集成,用于聊天应用程序

我正在尝试使用ejabberd服务器和smack库实现聊天信使,但很难整合所有的jar和smack的依赖项。 我正在使用android Studio。 我的build.gradle(模块): apply plugin: ‘com.android.application’ android { compileSdkVersion 22 buildToolsVersion “22.0.1” defaultConfig { applicationId “com.example.nit.xmppclient” minSdkVersion 18 targetSdkVersion 22 versionCode 1 versionName “1.0” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } } dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile ‘com.android.support:appcompat-v7:22.2.0’ compile “org.igniterealtime.smack:smack-android:4.1.0” compile “org.igniterealtime.smack:smack-tcp:4.1.0” compile “org.igniterealtime.smack:smack-android-extensions:4.1.0” compile ‘org.ogce:xpp3:1.1.6’ […]

远程客户端没有响应:使用asmack进行文件传输时出错

使用asmack接收文件时遇到问题。 在这里,我粘贴我发送和接收日志的错误和数据包 // error 04-21 19:21:05.109: WARN/System.err(7401): Error in execution: 04-21 19:21:05.109: WARN/System.err(7401): — caused by: java.util.concurrent.ExecutionException: 04-21 19:21:05.109: WARN/System.err(7401): — caused by: No response from remote client: 04-21 19:21:05.109: WARN/System.err(7401): at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer.negotiateStream(IncomingFileTransfer.java:199) 04-21 19:21:05.109: WARN/System.err(7401): at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer.access$100(IncomingFileTransfer.java:47) 04-21 19:21:05.109: WARN/System.err(7401): at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer$1.run(IncomingFileTransfer.java:124) 04-21 19:21:05.109: WARN/System.err(7401): at java.lang.Thread.run(Thread.java:1019) 04-21 19:21:05.109: WARN/System.err(7401): Nested Exception: 04-21 19:21:05.109: […]

Android xmpp MUC设置默认configuration

我正在使用Xabber开源项目,并且能够创build一个新的组,但它总是说:这个房间被locking,直到configuration被确认。 我试图设置一个默认的configuration,但它引发了我的exception:401未经授权。 到底是什么问题。 final MultiUserChat multiUserChat; try { multiUserChat = new MultiUserChat(xmppConnection, room); // CHANAKYA: set default config for the MUC // Send an empty room configuration form which indicates that we want // an instant room try { multiUserChat.sendConfigurationForm(new Form(Form.TYPE_SUBMIT)); } catch (XMPPException e) { e.printStackTrace(); }

ASmack – 从哪里获取ChatManager?

我正在尝试在Android 4.2.2上使用aSmack-8-4-rc2为一个学校项目制作一个支持XMPP的小型聊天应用程序,而且我遇到了一个让ChatManager对象处理传入消息的问题。 我到目前为止看到的每个例子都是 ChatManager manager = connection.getChatManager(); 然而,在开发过程中的某个时候,函数getChatManager()被删除,或者从类XMPPConnection (或者XMPPTCPConnection ,因为前者似乎已被废弃)被replaceXMPPConnection ,而且我找不到任何给出的文档或者例子我可以得到什么替代品的任何迹象。 我尝试使用类ChatManager构造ChatManager 。 它似乎有一个构造函数,虽然是一个私人的,因此我无法创build该对象。 我假设它是打算成为一个单身人士,但我还没有find办法去实现它。 有人知道这个function在哪里?

发送和接收IQ XMPP ASMACK Android

背景: 我已经能够实现一对一的通过XMPP在android中使用asmack库聊天。 我也能够向服务器发送状态。 我为我的基于聊天的应用程序使用OpenFire服务器。 问题:我正在使用connection.addPacketListener(new PacketListener()来接收消息和IQ数据包,对于我已经将它分类的消息数据包 PacketFilter Chatfilter = new MessageTypeFilter(Message.Type.chat); connection.addPacketListener(new PacketListener() { public void processPacket(Packet packet) { Message message = (Message) packet; if (message.getBody() != null) { String fromName = StringUtils.parseBareAddress(message.getFrom()); Log.i("XMPPClient", "Got text [" + message.getBody() + "] from [" + fromName + "]"); messages.add(fromName + ":"); m1=message.getBody(); messages.add(message.getBody()); // Add the […]

XMPP与Android Studio上的Smack 4.1的连接

我试图从https://github.com/igniterealtime/Smack与Smack 4.1.0 rc1做一个XMPP连接我按照这个指南https://github.com/igniterealtime/Smack/wiki/Smack-4.1-Readme-升级指南“导入Gradle。 源代码: package com.example.xmpp_app; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.Menu; import android.view.MenuItem; import org.jivesoftware.smack.AbstractXMPPConnection; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.tcp.XMPPTCPConnection; import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration; import java.io.IOException; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Create the configuration for this new connection XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder(); configBuilder.setUsernameAndPassword("test@example.com", "password123"); configBuilder.setResource("test"); […]