目次
序文
fly-iot Feifan IoT コラム:
https://blog.csdn.net/freewebsys/category_12219758.html
1. ビデオデモンストレーションアドレス
https://www.bilibili.com/video/BV1JG411B7ty/
[fly-iot] (5): オープンソース IOT モノのインターネット プロジェクトは、Emqx の MQTT サービスに接続し、MySQL データベース認証を構成するのに非常に便利です。WebSocker を使用して接続してテストできます。
2. まずデータベース接続認証方法を設定します。
接続されました。これは、データベースのパスワードが正しく構成されていることを意味します。
最も重要なのは、この認証クエリ SQL です。MySQL のクエリは次のとおりです。
SELECT token as password_hash FROM devices where
`deviceUsername` = ${username} AND blocked = 0 LIMIT 1
3. IoT プラットフォーム上にデバイスを作成する
その後、ツールでテストできます。
無事接続できました。次に、サブスクリプションがテストされ、メッセージが送信されました。
4. docker-compose での設定
docker-compose コード全体:
https://gitee.com/fly-iot/docker-compose
...
################## emqx latest 版本 ##################
emqx:
image: emqx/emqx:latest
container_name: emqx
environment:
- "[email protected]"
- "EMQX_CLUSTER__DISCOVERY_STRATEGY=static"
- "EMQX_CLUSTER__STATIC__SEEDS=[[email protected]]"
healthcheck:
test: ["CMD", "/opt/emqx/bin/emqx ctl", "status"]
interval: 5s
timeout: 25s
retries: 5
ports:
- 1883:1883
- 8083:8083
- 8084:8084
- 8883:8883
- 18083:18083
volumes:
- ./emqx/cluster.hocon:/opt/emqx/data/configs/cluster.hocon
depends_on:
- mysql-iot
構成メソッドを使用できるため、構成のためにインターフェイスにログインする必要はありません。
管理バックグラウンドは後で閉じることができます。設定ファイルを直接使用する方が安全です。
cluster.hocon の設定ファイル
authentication = [
{
backend = mysql
database = fly_iot
enable = true
mechanism = password_based
password = mysqliot
password_hash_algorithm {
name = plain, salt_position = disable}
pool_size = 8
query = "SELECT token as password_hash FROM devices where \n `deviceUsername` = ${username} AND blocked = 0 LIMIT 1"
query_timeout = 5s
server = "mysql-iot:3306"
ssl {
ciphers = []
depth = 10
enable = false
hibernate_after = 5s
log_level = notice
reuse_sessions = true
secure_renegotiate = true
verify = verify_peer
versions = [tlsv1.3, tlsv1.2]
}
username = root
}
]
設定ファイルを用意するだけです。
5. まとめ
emqx を使用して mqtt サービスを提供すると非常に便利です。
認証では、データベースに直接クエリを実行します。したがって、バックグラウンド システムが Python であるか golang であるかは関係ありません。
emqx サーバーと mysql データベースに負荷がかかります。