gpt4 book ai didi

android - 如何在 Smack 中启用 XEP-0199?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:45:47 24 4
gpt4 key购买 nike

我正在使用 aSmack。我的应用程序监听聊天室并对消息使用react,但它从不发送消息。如果聊天室保持沉默一段时间然后发送新消息,则该应用程序不会收到更多消息。我研究过,我认为 XEP-0199是这里的解决方案。我看到@Flow(当前的 Smack 维护者)implemented itthe issue related已关闭。

我认为我需要使用 PingProvider但我真的不知道如何将此类与 Connection 连接起来。

如何启用 XEP-0199 ?如何使用 PingProvider


连接代码:

smack = SmackAndroid.init(getActivity().getApplicationContext());
connection = new XMPPConnection(App.getServer());
connection.addConnectionListener(new ConnectionListener() {

private final static String SMACK = "SMACK";

@Override
public void reconnectionSuccessful() {
Log.i(SMACK , "reconnectionSuccessful");
}

@Override
public void reconnectionFailed(Exception e) {
Log.i(SMACK, "reconnectionFailed", e);
}

@Override
public void reconnectingIn(int seconds) {
Log.i(SMACK, "reconnectingIn " + seconds);
}

@Override
public void connectionClosedOnError(Exception e) {
Log.i(SMACK, "connectionClosedOnError", e);
}

@Override
public void connectionClosed() {
Log.i(SMACK, "connectionClosed");
}
});
connection.connect();
connection.login(user, password);

最佳答案

我解决了手动执行 ping 响应的问题:

connection.addPacketListener(new PacketListener() {

@Override
public void processPacket(Packet packet) {
connection.sendPacket(new Pong((Ping) packet));
}
}, new PacketFilter() {

@Override
public boolean accept(Packet packet) {
return packet instanceof Ping;
}
});

关于android - 如何在 Smack 中启用 XEP-0199?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23952347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com