问题标签 [eclipse-ditto]

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 回答
172 浏览

json - Eclipse Ditto - 创建 MQTT 连接 - 因无效 json 400 响应而失败

按照此处的描述和操作 Devops 命令建立与 MQTT 3.1.1 端点的连接最终得到无效的 json 400 响应。甚至MQTT-Bidirectional示例也被 400 拒绝。所以这就是为什么我在这里发布这个问题以获取提示我目前做错了什么以及我可以做些什么来帮助其他人在同一问题上运行。这是我的卷曲请求:

检查我的 json 文件的提示返回我的 json 是有效的。

这是我的 json 文件当前的样子:

有人知道为什么这个 json 无效?

感谢您提供解决此问题的支持和提示!

[编辑] 首先,“-f”对 curl 请求更有意义:

第二个这里更新json(结果如上所示)

0 投票
0 回答
215 浏览

eclipse-hono - 连接本地部署的 Hono 和同上 - 错误 504

Hono 部署在 Minikube 集群上(我按照https://www.eclipse.org/hono/getting-started/在本地设置 Hono)并且 Ditto 在 localhost 上运行。我尝试按照本教程进行调整,使其适用于本地部署。不幸的是,我无法将 Ditto 连接到本地 Hono 实例的 AMQP 端点,我尝试了以下方式:

“honotry”解析为“hono-dispatch-router-ext”服务的 IP 地址。

我得到回报:

{"?":{"?":{"type":"devops.responses:errorResponse","status":504,"serviceName":null,"instance":null,"payload":{"status": 504,"error":"connectivity:connection.failed","message":"ID 为 'hono-example-connection' 的连接连接失败。","description":"honotry: 系统错误"}}}}

我不知道为什么会收到此错误消息。

我能够将本地 Ditto 实例连接到 Hono Sandbox:

我得到回报:

{"?":{"?":{"type":"connectivity.responses:testConnection","status":200,"connectionId":"hono-example-connection","testResult":"成功连接 + 初始化映射器"}}}

也可以使用命令行客户端连接本地 Hono AMQP Endpoint:

有谁知道如何解决这个问题?先感谢您!

编辑:

返回

在 /etc/hosts 中将 honotry 设置为 10.98.212.66。

0 投票
1 回答
121 浏览

eclipse-hono - 在同一台本地机器上连接 Eclipse Hono 和 Eclipse Ditto

错误提示:

提供的身份验证无效

0 投票
1 回答
178 浏览

eclipse-ditto - 无法在 Eclipse Ditto 中检索响应消息

我正在尝试创建一个示例,其中客户端向事物发出消息并且事物回复客户端。该事物通过 MQTT 连接连接到 Eclipse Ditto,并通过 curl 命令模拟客户端。为此,我从以下两个教程中提取了一些部分:https ://www.eclipse.org/ditto/2018-12-05-example-command-and-control.html和https://github。 com/eclipse/ditto-examples/tree/master/mqtt-双向

除了 Ditto 没有以非常可靠的方式将消息从客户端路由到事物的事实(我会说三分之一的消息没有传递给客户端),客户端无法接收来自的响应消息事情,即使有一个非常高的超时值。

这是我的 Python 代码,它充当了这个东西:

这是我模拟客户端的 curl 命令:

一开始我以为我在使用 Ditto 协议时做错了,但我相信事实并非如此,因为correlation-idrequest 和 responde 都是一样的,其他字段似乎没问题。

0 投票
1 回答
69 浏览

eclipse-ditto - Eclipse 同上 FIPS 140-2 合规性

Eclipse Ditto 默认使用什么加密库?我需要确定它是否经过 FIPS 140-2 验证。如果没有,有没有办法使用经过验证的替代加密库来构建同上?

0 投票
1 回答
65 浏览

eclipse-hono - 我们是否需要 kubernetes 实例来连接 Eclipse Hono 和 Eclipse Ditto 两者都在沙盒环境中运行?

我想知道我们是否需要链接(https://www.eclipse.org/ditto/2018-05-02-connecting-ditto-hono.html)中提到的cloud2edge包所要求的kubernetes集群,即使两者hono 和 ditto 是否在为评估目的而提供的沙盒环境中运行?

0 投票
1 回答
243 浏览

eclipse-hono - Eclipse IoT 绑定 Hawkbit-Ditto-Hono

我正在我的 RP3 上试用 Eclipse IoT Framework。在主机端(本地 PC 后端),我想将 Hawkbit 与 Ditto 绑定,至少 Ditto 与 Hono 绑定。从这里这里我可以读到仍然无法将 Hawkbit 与同上连接?正确的?如果没有,有没有办法将 Hawkbit 连接到 hono?

感谢 java


更新

我认为目前还不清楚我应该实现什么。好吧,目前任何边缘设备都可以通过 DDI-Api 在 HawkBit 进行通信和注册。另一方面,这些边缘设备也通过链进行通信:Hono->Ditto->App,与后端特定的应用程序。此通信路径由 AMQP 标准化。

现在我的问题:

  1. Hawkbit 和 Hono 都分别维护自己的设备/租户存储库。幸运的是,我在这里看到了一些将它们合并在一起的努力。但在我看来,它仍然不是正式版本的一部分。正确的?如果不是,我很感谢任何帮助和建议,如何只维护一个回购。

  2. 通过 DDI-Api 使用 Hawkbit 并且不能将其包含在 IoT 链中(Hono->Ditto->Hawkbit)使其就像一个异物。因此,如果还可以使用 Hawkbit 的 DMF-API 将其连接到 Hono 或比 Ditto 更好,那将很有帮助。在我看来,这仍然是不可能的,还是我在这里误解了什么?

谢谢和最好的问候阿拉什

0 投票
1 回答
307 浏览

keycloak - 使用 Keycloak 在 Eclispe Ditto 中定义策略中的主题

我当前的用例是:我有一个前端应用程序,用户通过 Keycloak 登录。我想在这个前端(https://www.eclipse.org/ditto/http-api-doc.html)中实现 Ditto HTTP API 的某些部分。

例如,我想为授权创建策略( https://www.eclipse.org/ditto/basic-policy.html )。我在文档中读到可以使用符合 OpenID Connect 的提供程序,其形式为:(https://www.eclipse.org/ditto/basic-policy.html#who-can-be-addressed)。

页面底部有基本的身份验证示例,在这种情况下似乎使用用户名。

我的问题是:如果我想使用 Keycloak,子声明到底是什么?它也是我要授予权限的用户的用户名吗?以及如何在我想指定之后将其发送到 Ditto 的策略的前端中获取此信息?


更新 1

我尝试在 Ditto 中启用 keycloak 身份验证,如下所示,如下所述:https ://www.eclipse.org/ditto/installation-operating.html#openid-connect

因为我使用 Docker Compose 运行 Ditto,所以我在第 136 行的 ditto/deployment/docker/docker-compose.yml 中添加了以下行作为环境变量:- Dditto.gateway.authentication.oauth.openid-connect-issuers.keycloak=http://localhost:8090/auth/realms/twin 此 URL 与我的令牌的颁发者声明中的相同'我从 keycloak 接收。

现在,如果我尝试使用 Postman 向 {{basePath}}/things 发出例如发布请求,我会收到以下错误:

我在 Postman 中选择了 Bearer Token 作为 Auth 并粘贴了一个新的令牌。具有默认同上用户的基本身份验证仍在工作。

在此处输入图像描述

我之前是否必须在同上指定新主题/我的用户?


更新 2

我设法通过在 nginx.conf 中注释掉“auth_basic”和“auth_basic_user_file”来关闭 nginx 中的基本身份验证!

它现在似乎被转发到同上,因为现在我收到 Postman 的以下错误:


更新 3

我在 gateway.conf 中的配置现在看起来像这样:

我还尝试在 docker-compose.yml 中添加这两行:

不幸的是,我仍然没有运气,与上述相同的错误:/似乎用户之前在 keycloak 上遇到过类似的问题(https://gitter.im/eclipse/ditto?at=5de3ff186a85195b9edcb1a6),但遗憾的是他没有提到解决方案。

编辑:事实证明,我以错误的方式指定了这些变量,正确的解决方案是将它们作为command: java ... 更多信息的一部分添加到此处


更新 4

我尝试在本地构建 Ditto 而不是使用最新的 docker 映像,我想我现在可能更进一步,看起来我的 oauth 配置正在工作。我现在得到:

日志中的错误消息是:

我的 keyloak 肯定在运行,我可以获得代币。如果我正在打开http://localhost:8090/auth/realms/twin/.well-known/openid-configuration第一条错误消息中的内容,我可以从 keycloak 配置中看到我的 openid 配置。编辑:似乎我的网关容器无法到达我的 keycloak 容器,将尝试解决这个问题。


最后更新

来自网关 docker 容器的无法访问的 keycloak docker 容器是问题所在。我现在正在使用 traefik:

  1. Keycloak 容器具有以下别名:keycloak.localhost
  2. 网关中的 Oauth 配置如下所示:
  1. 现在网关可以通过别名找到 keycloak 容器,我仍然可以使用本地主机中的 keycloak admin ui:http://keycloak.localhost:8090/auth/admin/

附加信息:Traefic 博客

0 投票
1 回答
89 浏览

eclipse-hono - 通过 hono 将事件从边缘设备发送到同上

我成功地做了以下事情:

  • 创建 hono 租户并为其注册设备。
  • 将一个简单的基于 python 的边缘设备连接到 hono。
  • 将 hono 连接到同上。
  • 为上述边缘设备创建双胞胎。

通过 hono 将遥测数据从边缘设备发送到同上效果很好。

我还通过 hono每隔一秒从边缘设备发送一个伪事件到同上,如下所示:

另一方面,我编写了一个简单的同上-amqp-client,它只接收所有同上的传入消息。我以正确的间隔接收所有传入的遥测消息 - 即每秒。在事件消息的情况下,它们似乎被同上缓冲并每隔几秒钟发送到 amqp-client,而不是在从设备发送时发送!为什么?

据我从同上文档中了解到,同上提供了两个沟通渠道。双通道用于通过命令和事件与双胞胎进行通信,而实时通道则通过消息直接与设备进行通信。但是在协议主题部分 中,通道可以是双胞胎,也可以是活动的,也可以用于事件或命令,这是令人困惑的。

  • 我想知道将事件从设备发送到同上的推荐方式是什么?
  • 是否应该使用事件或消息(发件箱)通过实时频道发送?
  • 将事件定义为双胞胎中的一个特征并将正常命令/修改发送到它的值是否更好?

提前感谢您的任何建议!

0 投票
1 回答
130 浏览

javascript - 同上 HTTP API 服务器发送事件 CORS 错误

Hono+Ditto使用安装helm-charts,如cloud2edge中所述。

这意味着 Hono+Dittominikube在我的 PC 上运行。我还创建了连接、策略和设备。到目前为止一切正常。

在下一步中,我只是编写了一个简单的“前端”来从 Ditto-HTTP-API 获取事物状态。只要我通过 fetch-API 手动获取事物状态,一切都很好。但是,一旦我尝试使用 SSE(事件源),就会收到以下 CORS 错误:

从昨天开始,我一直在为这个错误而苦苦挣扎,我在互联网上找到的关于 CORS 错误的答案都没有工作:(。

如何使用 Eventsource 从我的 PC 与 Ditto 通信而不会出现 CORs 错误?

下面是我的简单前端:

谢谢!