标签: aws-iot-greengrass

CERTIFICATE_VERIFY_FAILED:本地服务器上的 TCP 连接的主机名不匹配(handshake.cc:352))

我的代码正确连接到 AWS-END-POINT,但是当我尝试使用本地网络 IP 连接到 Greengrass 核心时。我收到这个错误。

E/flutter (12349): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: HandshakeException: Handshake error in client (OS Error:
E/flutter (12349): CERTIFICATE_VERIFY_FAILED: Hostname mismatch(handshake.cc:352))
Run Code Online (Sandbox Code Playgroud)

我已经检查过 greengrass 核心。工作正常。它与网络客户端的连接非常好。我认为使用 ip 地址而不是 URL 地址可能存在一些问题。但我不确定。有人可以帮忙吗?

我正在运行的代码是:

import 'dart:async';
import 'dart:io';
import 'package:mqtt_client/mqtt_client.dart';
import 'dart:convert' show utf8;
import 'dart:convert';
Future<int> main() async {
  const String url =
      '192.168.8.106';
  const int port = 8883;
  const String clientId =
      'MY CLIENT ID';
  MqttClient client = MqttClient(url,clientId);
  client.port = port;
  client.secure = true;
  final SecurityContext context = new SecurityContext(withTrustedRoots: …
Run Code Online (Sandbox Code Playgroud)

mqtt dart iot flutter aws-iot-greengrass

5
推荐指数
1
解决办法
1万
查看次数

AWS Greengrass 将 docker 容器与 MQTT 代理连接

使用 AWS greengrass 处理边缘情况,我们计划在设备上运行多个 docker 容器,这些容器将使用 MQTT 相互通信。

到目前为止,我们成功安装并连接 greengrass、部署容器并使用与 greengrass 组件aws.greengrass.clientdevices.mqtt.Moquette 的进程间通信

ipc_client = awsiot.greengrasscoreipc.connect()
Run Code Online (Sandbox Code Playgroud)

这是使用套接字连接。

如何使用主机、端口和身份验证将我的应用程序连接到本地 MQTT 代理?

像这样的东西

myAWSIoTMQTTClient = AWSIoTPyMQTT.AWSIoTMQTTClient(CLIENT_ID)
myAWSIoTMQTTClient.configureEndpoint(ENDPOINT, PORT)
if PATH_TO_ROOT and PATH_TO_KEY and PATH_TO_CERT:
  myAWSIoTMQTTClient.configureCredentials(PATH_TO_ROOT, PATH_TO_KEY, PATH_TO_CERT)
myAWSIoTMQTTClient.connect()
Run Code Online (Sandbox Code Playgroud)

到目前为止我只能使用IPC建立连接。特别是对于开发来说,替代连接模式会很有帮助。此外,我们还想将外部设备连接到 MQTT 代理。

感谢您的支持!

moquette aws-iot aws-iot-greengrass

5
推荐指数
1
解决办法
441
查看次数

AWS IoT Greengrass 与 FreeRTOS

我想知道什么时候人们会青睐 Greengrass 而不是 FreeRTOS?任何陷阱或经验提示都将受到高度赞赏

谢谢!

freertos aws-iot aws-iot-greengrass

1
推荐指数
1
解决办法
1493
查看次数

通过 Greengrass 发送 UID/设备 ID

我正在运行多个 Greengrass 核心,它们将数据发送到 MQTT 流。我在 GGC 上部署了 Lambda,读取传入的 SerialPort 并将其推送到 Stream。

但现在我想检查哪个设备正在发送数据 - 我尝试用这个来检查主机名

import socket
host = socket.gethostname()
Run Code Online (Sandbox Code Playgroud)

但核心发送值“沙箱”,所以我认为 lambda 无权读取主机名。

SDK没有这方面的文档: https://github.com/aws/aws-greengrass-core-sdk-python

我想将数据推送到 mqqt 流,如下所示:

response = client.publish(
    topic='customer/events/{DEVICE-ID or UID or ARN}/',
    payload=jsonData.encode())
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-lambda aws-iot aws-iot-greengrass

0
推荐指数
1
解决办法
407
查看次数