xmpp 相关问题

XMPP(可扩展消息传递和在线协议)是一种开放的标准协议,用于近乎实时地交换XML结构数据。

在 iOS XMPP 聊天应用程序中阅读收据

我想实现“阅读消息功能”,如Facebook,iMessage,WhatsApp等。如果接收者已阅读消息,发送者将收到对方已阅读消息的通知。 是

回答 1 投票 0

无法使用 Smack 更改用户的状态

我尝试设置在线模式,但它无法通过名册工作。我运行此代码并检查我的本地主机服务器,模式仍然“可用”而不是“请勿打扰”。 最终连接连接=新

回答 2 投票 0

无法使用 Strope.js 和 Ejabberd 以及 XEP-0313 检索聊天历史记录:消息存档管理 (MAM)

我目前正在开发一个基于 Web 的聊天应用程序,使用 Strope.js 作为 XMPP 客户端库,使用 Ejabberd 作为 XMPP 服务器。我正在尝试实现对检索聊天历史记录的支持...

回答 1 投票 0

是否可以通过 XMPP 发送语音消息?

我将设置任何开源 XMPP 服务器(例如 ejabberd 或 prosody),以便在一小群人中使用它,就像没有联盟的工作聊天一样。 XMPP 客户端单片眼镜声称支持

回答 2 投票 0

如何在Android中从XMPP编辑和删除特定消息?

我正在开发一个 Voip 应用程序我正在实现 XMPP 聊天功能。我有自己的 jabber 服务器来实现 XMPP 服务,并且我正在使用此库 https://github.com/siacs/

回答 1 投票 0

在线用户可以查询ejabberd数据库吗

我有ejabberd 16.03,我想查询数据库以获取管理面板中显示的在线用户。 有人能帮我吗?我需要查询哪个表? 我想我可以做这样的事情: 东南...

回答 2 投票 0

NetBeans 18 Maven JavaFX 20 项目不会承认 smack [已解决]

我有一个项目,打算使用 XMPP 进行 IM。我已经调用了 NetBeans,smack 依赖项,它在 pom.xml 文件中显示为: 组织。

回答 1 投票 0

使用xmpp.js从浏览器连接到Openfire服务器

我正在为浏览器制作一个 Openfire 客户端。但我不知道如何将浏览器连接到本地主机上运行的 Openfire 服务器。 xmpp.js 和 Openfire 的文档都不够......

回答 1 投票 0

XMPP - Openfire 子组

在 Openfire 中创建子组哪种方法有意义? Openfire有这样的插件等吗?我可以在不创建自定义表的情况下解决这个问题吗? 我想创建链接到某个组的子组...

回答 1 投票 0

Xmpp IOS 多用户聊天。我没有找到接受群组邀请的方法?我如何接受收到的邀请

当我发送邀请时,会调用此函数,但我不明白应该使用哪一行代码来接受邀请。 我正在尝试创建多用户和多组邀请也...

回答 3 投票 0

新用户如何加入XMPP服务器中的聊天室?

我已经建立了与XMPP服务器的连接。我的问题是,如果有一个聊天室并且新用户想要加入,我应该使用 Smack 类以下的用户来注册它吗? 账户经理账户Ma...

回答 1 投票 0

在 VPS 上设置 Ejabbered

我正在尝试在 debian vps 上设置 ejabberd,你可以看到 5222 和 5269 端口上有一些东西正在运行,但 5280 上没有任何东西,你无法访问 admin 来配置服务器 我有...

回答 1 投票 0

Omemo 消息发送失败

我正面临这个问题, “org.whispersystems.libsignal.InvalidKeyException:设备密钥上的签名无效!” 我从对话代码中尝试过 非工作捆绑包分享如下 - 我正面临这个问题, 'org.whispersystems.libsignal.InvalidKeyException: Invalid signature on device key!' i tried it from conversations code 非工作捆绑包在下面分享 - <items](http://jabber.org/protocol/pubsub"><items) node="eu.siacs.conversations.axolotl.bundles:2041762935" xmlns="http://jabber.org/protocol/pubsub"><item xmlns="http://jabber.org/protocol/pubsub" id="current">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 尝试处理此捆绑包时:- final PreKeyBundle preKeyBundle = new PreKeyBundle(0, address.getDeviceId(),preKey.getPreKeyId(), preKey.getPreKey(),bundle.getSignedPreKeyId(), bundle.getSignedPreKey(),bundle.getSignedPreKeySignature(), bundle.getIdentityKey()); try { SessionBuilder builder = new SessionBuilder(axolotlStore, address); builder.process(preKeyBundle);} 在内部,这个方法给了我一个错误,如下所示 - public void process(PreKeyBundle preKey) throws InvalidKeyException, UntrustedIdentityException {synchronized (SessionCipher.SESSION_LOCK) {if (!identityKeyStore.isTrustedIdentity(remoteAddress, preKey.getIdentityKey(), IdentityKeyStore.Direction.SENDING)) {throw new UntrustedIdentityException(remoteAddress.getName(), preKey.getIdentityKey());} //我遇到这个异常 if (preKey.getSignedPreKey() != null &&!Curve.verifySignature(preKey.getIdentityKey().getPublicKey(),preKey.getSignedPreKey().serialize(),preKey.getSignedPreKeySignature())){throw new InvalidKeyException("Invalid signature on device key!");} 这可能是什么原因,任何人都可以帮助指导我们如何解决这个问题吗? The exception InvalidKeyException: Invalid signature on device key! 在处理信号协议(由 libsignal 等库使用)中的 PreKeyBundle 时,表明 针对身份密钥对已签名预密钥的签名验证失败了。 发生这种情况的原因有多种: 1- 数据损坏: 确保PreKeyBundle数据在传输或存储过程中不被损坏。密钥数据的任何更改都可能导致签名验证失败。 如果您要将 PreKeyBundle 与其他格式相互转换,请仔细检查序列化和反序列化逻辑。 2-不匹配的按键: 验证PreKeyBundle中的身份密钥和签名预密钥确实属于同一用户。这些密钥之间的不匹配将导致签名验证失败。 如果您从服务器获取密钥,请确保不同用户的密钥分配不会发生混淆。 不正确的实施: 如果您自己生成 PreKeyBundle,请确保正确完成签署预密钥和构建捆绑包的过程。 确保使用正确的算法和参数进行签名。 3键过期或轮换: 检查涉及的密钥是否已过期或最近被轮换。过期或旧的密钥可能无法正确验证。 确保会话中使用的密钥是最新的。 库或依赖问题: 验证您正在使用的 libsignal 或相关库的版本是否兼容且是最新的。 检查库中是否有任何已知问题或可能解决此问题的更新。 调试步骤 日志记录:在生成、存储、传输和接收密钥的区域添加全面的日志记录。记录密钥(以安全且尊重隐私的方式)以了解是否存在任何差异。 静态测试数据:使用静态键创建一个测试用例,您知道预期的结果。这可以帮助确定问题是否出在密钥生成、传输或验证过程中。 交叉验证:尝试使用外部工具或不同的实现来使用身份密钥验证签名的预密钥,以排除您正在使用的特定库中的问题。 代码审查 检查生成和签署预密钥的代码。确保签名过程使用正确的身份密钥并且签名正确生成。 在 PreKeyBundle 构造中,确保传递的参数顺序正确且来源正确。 外部因素 考虑可能损坏或更改关键数据的网络或存储问题。 如果您使用服务器来分发密钥,请确保服务器端逻辑正确处理密钥及其关联。 通过系统地检查每个区域,您应该能够查明 InvalidKeyException 的原因并解决它。

回答 1 投票 0

在我将 minifyEnabled 设置为 true 后,应用程序因“java.lang.VerifyError:验证程序拒绝类 org.igniterealtime.jbosh.ApacheHTTPResponse”而崩溃

我将 JBOSH 与 Smack 一起使用,当我在将 minifyEnabled 设置为 true 后尝试调用 BoshClient.send(ComposableBody body) 时,它会抛出 java.lang.VerifyError 并且我的应用程序崩溃。我可以添加一个 try catch

回答 1 投票 0

当应用程序在 Android 后台运行时获取 xmpp 消息

当应用程序断开连接时,它会停止从 xmpp 服务器获取消息。出于后台通知目的,我正在使用 GCM 服务。现在,就像 WhatsApp 一样,我希望我的应用程序也能接收

回答 1 投票 0

无法在真实设备上使用 Smack 连接到 XMPP 服务器

我正在开发一个Android应用程序,它使用Smack库(版本4.4.6)连接到XMPP服务器(我在本地计算机中使用openfire)。代码在模拟器中运行得很好,但是...

回答 1 投票 0

Ejabberd 和 Ruby on Rails 应用程序

我有一个 Rails 应用程序,具有类似设备的身份验证以及许多依赖于它的部分。现在我想使用 ejabberd (xmpp) 在用户之间添加聊天。我在网上搜索发现...

回答 2 投票 0

有什么理由使用FCM上行消息吗?

我们不能直接通过 HTTP 将消息传递到应用服务器而不通过 FCM 服务器吗?

回答 1 投票 0

NetBeans 18 Maven JavaFX 20 项目不会承认 smack

我有一个项目,打算使用 XMPP 进行 IM。我已经调用了 NetBeans,smack 依赖项,它在 pom.xml 文件中显示为: 组织。

回答 1 投票 0

如何将windows erlang项目连接到ubuntu的ejabberd?

我已经配置了Ejabberd 23.04的YML文件。 当我输入用户名和密码时,我可以在 Firefox 中看到 Ejabberd 仪表板(下面附有屏幕截图)。 使用 IP 地址和端口

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.