问题标签 [libstrophe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
537 浏览

c - XMPP 使用 libstrophe 自动重新连接

使用 libstrophe,当我失去连接时,我可以自动重新连接吗?我在客户端使用了以下代码:

当客户端第一次连接时,我收到消息“DEBUG:已连接”当服务器完成时,我收到消息“DEBUG:已断开连接”。但是当服务器第二次启动时,客户端不会自动重新连接。

0 投票
1 回答
200 浏览

c - 何合并来自不同项目的事件循环

我正在使用 Strophe C 库进行 XMPP 消息传递和 libwebsock 来创建 Websocket 服务器。我想要做的是将在 strophe 上收到的消息转发到 Websocket 客户端,反之亦然。但是我不知道该怎么做。

strophe 和 libwebsock 都需要运行事件循环来处理事件。如何运行两个循环或将它们合并为一个,以便在同一程序中处理来自两个库的事件?

提前致谢。:)

0 投票
3 回答
184 浏览

c++ - 如何在 C++ 中创建唯一的 lambda 实例?或者,如何使用 libstrophe 在 xmpp 中设置 id 消息处理程序?

我正在使用C libstrophe 库在 C++11 中制作 xmpp 应用程序。我正在尝试为特定 ID 注册消息处理程序,因此我可以使用xmpp_id_handler_add识别特定的返回消息。

但是我不明白 strophe 的实现。

Strophe 将只接受形式的函数指针

使用静态函数很容易做到这一点,但是通过查看源代码我发现了这一点

这意味着如果我尝试使用相同的静态函数调用 xmpp_id_handler_add 两次,但 id 和 userdata 不同,它将拒绝第二次调用。

所以我想也许每次我想添加一个新的 ID 处理程序时我都可以制作一个 lambda,就像这样

但是当我查看 lambda 的指针值时

并运行了两次,两次都得到了相同的值。在这种情况下,lambda 似乎就像一个静态函数。

那么,每次我想监听一个新的 ID 时,如何创建一个新的、唯一的函数指针呢?或者,我是否误解了应该如何使用 libstrophe?您是否应该为每个要收听的新 ID 设置一个新的静态函数?

0 投票
2 回答
611 浏览

xmpp - XMPP libstrophe 客户端与 ejabberd 的连接

我是libstrophe示例客户端程序bot.c并尝试与ejabberd服务器连接。

我正面临身份验证失败。请参考下面的日志。

有人可以帮我解决这个身份验证问题吗?

0 投票
1 回答
263 浏览

c - 为 openwrt 编译 libstrophe 以支持 TLS

我使用 libstrophe 版本 0.8.9 来开发我的 xmpp 客户端。

这是我的 xmmp 客户端连接到服务器的 xmmp 功能

我收到了这些错误

虽然这些变量存在于这个文件中https://github.com/metajack/libstrophe/blob/master/src/common.h

我的代码或 libstrophe 有什么问题?

0 投票
0 回答
1121 浏览

c - 使用 openssl 检查受信任的证书

我使用 libmesode(fork libstrophe)开发了一个 xmpp 客户端。我想通过认证来确保身份验证。服务器端有一个证书 server.pem 客户端有它的证书 client.pem

在 lidmesode 中用于检查证书的函数:

当 xmpp 客户端使用 TLS 连接到 ejabbed xmpp 服务器时,openssl 检查自签名但继续连接的服务器证书!!。第二件事是:openssl 不使用客户端证书检查服务器证书以检查服务器证书是否受信任。

openssl 做这些检查吗?

1)如果自签名证书断开连接

2)检查证书是否可信。

以下捕获显示服务器发送证书,然后客户端发送密钥。

就是这个key应该取自客户端认证!

在此处输入图像描述