独自の MQTT サーバーを構築する

        はじめに:オンライン教材の多くはクラウドサービスを利用していますが、今回は実験用に構築したサーバーを使用したので、その過程を記録していきます。

1. サーバー構築

        1.クラウドサーバーを利用する

クラウドサーバーにはさまざまな種類があり、インターネット上にも多くの教えがあるので、ここではあまり説明しませんが、実験に使用したAlibaba Cloudの国内サーバーは後ほど紹介します。

        2. 独自のサーバーを構築します - Dell R620 (この実験で使用)

        今回の実験は単体でサーバーを立てるのがメインでしたが、整理していたら灰を食べさせたくないR620があったのでサーバーを立てることができました。

        私たちが使用する U ディスク インストール システムは、ここで参照できます。

ubuntu 18.04 U ディスクのブートディスクの作成_AllyLi0224 のブログ-CSDN ブログ_U ディスクの作成 Ubuntu システム ディスクの作成

 

        ブートディスクを焼き付けた後、BIOS 設定を実行し、オペレーティング システムをインストールします。デモでは説明できない資料が多数あります。プロセスは仮想マシンの作成と同じです。仮想マシンをプレイしたことがある人なら誰でも理解できます。

        インターフェイスに入ったら、ネットワーク、ファイアウォール構成、主にファイアウォール ポート構成とルーター構成を構成する必要があります。これは、バックグラウンドでセキュリティ グループを直接管理できるクラウド サーバーとは異なり、自社構築サーバーであるためです。

                1) リモートコントロールアーティファクトRustdesk

        サーバーの基本設定が完了したら、リモート コントロールを実行する必要がありますが、サーバーのモニターやその他のリモート コントロールを取り除くことができます (サーバーは電源コードとネットワーク ケーブルを接続するだけでほこりを吸い続けることができます)。ここでは、安全性が高く、TLS 暗号化を備えたオープンソース ソフトウェアの Rustdesk を推奨します。

        インストール: クライアントとサーバーのバージョンが多数あるため、インストールを明確に確認する必要があります。

 

 

次に、メッセージサーバーを選択します

        1.rabbitmq

        Rabbitmq の Web ページは初心者にとってあまりフレンドリーではありません。すべて英語ですが、emqx と比較すると、帯域幅と耐えられるデータ量の点で大きな利点があります。欠点は、構築と設定のプロセスが emqx に比べてあまり単純ではないことです。私も構築しましたが、簡単な実験にはempqxが簡単なので、ここの情報を参照してください。

【学習のお供】Kuangshen氏のRabbitMQメモ(RabbitMQの簡単な使い方)

RabbitMQ のインストールと構成 (SSL の開始) とテスト ケース - プログラマーが求めた

RabbitMQ の開発履歴とインストール

Rabbitmq-c ソースコードの初期解説 (1) - プログラマー募集

RabbitMQ の MQTT プラグインに基づいて MQTT サービスを構築し、送受信テストに MQTTX を使用する - プログラマーが求めた

  

      2.emqx (この実験で使用)

        empx をサーバーにインストールするには、公式 Web サイトのマニュアルを参照してください。これは非常に明確ですhttps://www.emqx.io/zh/downloads?os=Ubuntu


独自のオペレーティング システムを選択し、ワンクリックでインストールします

        利用ガイドはサーバー構築だけでなく、モバイル端末の設定(シングルチップマイコンの設定、WeChatアプレットの設定、Webページの設定)においても非常に重要ですので、導入後はIPを変更しないでください

        自分で構築したサーバーは、1) Linux ファイアウォール 2) ルーター ファイアウォール のポートが開いているかどうかに注意する必要があります。

        学校で構築したのですが接続できず、エラーを確認したところpingが通っていないことがわかり、ネットワーク管理者に連絡したところ、学校が攻撃を防ぐためにすべてのポートを閉じていたことが分かり、外部ネットワークにアクセスできませんでした。後から抜いたチャイナユニコムのネットワークケーブルでは、ルーターのページにログイン後、使用するポートが開放され、外部ネットワークからのpingが通るようになりました。

         以下のコードを入力すると、empxが正常に動作しているかどうかが判定され、使用されているポートも確認できます。

sudo systemctl status emqx

 

次に、Web バージョンの emqx にログインし、外部 IP またはドメイン名を入力します。ポート番号は18083です。

 

        ここでは監視されているポートも確認できます。新しくインストールされた empx には ssl がない可能性があり、ws と tcp の 2 つしかありません。これを開くにはサーバーに ssl をインストールする必要があります。

        8883、1883、8083、8084、18083 およびその他のポート、8083 は主に非暗号化 WebSocket プロトコル ポート (ws) に使用され、8084 は WeChat アプレット接続 (wss) に使用される暗号化ポート、18083 は主に EMQX コントロールへのアクセスに使用されます。 1883 は基本的な TCP ポートで、MCU がサーバーに接続するためのポートです。8883​​ は暗号化されたポート (https) です。

WeChat アプレット開発ドキュメントには、セキュリティ上の理由から WebSocket/TLS プロトコルのみがサポートされていると記載されているため、この実験では、アプレットをサーバーに接続して使用するために wss プロトコルのポートを開く必要があります。

        暗号化が必要な WeChat アプレットを作成する場合を除き、ほとんどの人にとって、SSL をオンにする必要はありません。この部分は後ほど紹介します。

        emqx にはクライアントがあり、mqtttx などのクライアントを使用する必要がなく、テストに非常に便利です

今後の更新は以下の通り

3、クライアント

        1. デバイス側(シングルチップマイコン)

        2.モバイル端末(WeChatアプレット)

        3. デスクトップ (mqttx)

間違いがある場合は、コメントして時間内に修正してください。ありがとうございました

おすすめ

転載: blog.csdn.net/weixin_52522953/article/details/127987590