http://swf.com.tw/?p=1005

認識MQTT」文章提到,MQTT的訊息全都透過稱為代理人(broker)的伺服器交流。本文將說明頗受歡迎的開放原始碼MQTT伺服器Mosquitto,在Windows系統上的安裝流程,以及替MQTT伺服器開啟Windows防火牆埠號的步驟。

下載與安裝Mosquitto

Mosquitto(註:這個名稱和英文的蚊子只差一個字母,所以Mosquitto的標誌中間帶有一個尖刺)是非營利軟體供應商聯盟Eclipse基金會的開源物聯網專案計畫(iot.eclipse.org)中的一環,支援MQTT 3.1和3.1.1版通訊協定,可在Windows, macOS和Linux等作業系統上安裝執行。適用於Windows系統的安裝程式,可直接從Mosquitto官網下載(mosquitto.org/download),請選擇“Native build”(原生編譯版):

下載之後直接雙按它進行安裝。在安裝過程中,安裝程式會提示需要額外下載OpenSSLpthreads程式元件

請按下Next(下一步)繼續安裝,最後,螢幕上將出現如下的兩個錯誤訊息,告訴我們因為缺乏必要的.DLL元件,Mosquitto伺服器無法啟動。

下載與安裝Mosquitto所需的元件

請下載pthreads裡的pthreadVC2.dll元件:

接著下載Win32_OpenSSL_v1.0.2k_Light,32位元版本的OpenSSL安裝程式並執行它。

底下是OpenSSL的數個安裝步驟畫面之一,為了方便複製DLL檔,請選擇第二個選項,將OpenSSL的二進制檔(以及.DLL檔)存放到/bin資料夾(第一個選項是「存入系統資料夾」)。

這是OpenSSL最後一個安裝畫面,詢問你要捐助多少美金,如果目前尚未準備捐款,請取消勾選並按下Finish(完成)鈕。

選取OpenSSL安裝路徑(預設為C:\OpenSSL-Win32)的bin資料夾裡的libeay32.dll和ssleay32.dll:

把它們連同之前下載的pthreadVC2.dll元件,全都複製到Mosquitto安裝資料夾(預設路徑是C:\Program Files (x86)\mosquitto)。

重新安裝Mosquitto,就能順利安裝成功。

啟動Mosquitto伺服器

在Windows的「服務」或者「工作管理員」的「服務」項目中,找到mosquitto服務,然後在它的「狀態」欄位按滑鼠右鍵,選擇「啟動」。

若要確認Mosquitto伺服器是否在運作狀態。可在「命令提示字元」視窗中執行netstat -an,列舉目前作用中的連線。Mosquitto服務預設運作於1883埠,因此我們也可以執行netstat -an|find “1883”,確認Mosquitto伺服器目前正在執行中:

開通防火牆埠號1883

Windows的防火牆預設沒有開通1883埠號,因此本機電腦以外的MQTT裝置無法和Mosquitto伺服器連線。

設定Windows防火牆,允許外部裝置透過1883埠連入本機電腦的步驟如下:

1. 按下Windows防火牆設定面板左下角的「進階設定」,開啟「具有進階安全性的Windows防火牆」面板:

2. 底下畫面顯示所有可連入(輸入)和連出(輸出)本機的安全規則設定。請按右上角的「新增規則」,準備新增一個1883埠號的輸入規則。

3. 在「新增輸入規則精靈」的第一個設定選項,選擇「連接埠」,再按「下一步」。

4. 選擇“TCP”並指定1883連接埠。

5. 選擇「允許連線」。

6. 套用此規則的時機,可全部勾選,至少勾選前面兩項。

7. 最後,替此規則設定一個名稱和說明。

MQTT教學(二):安裝MQTT伺服器Mosquitto,Windows系統篇的更多相关文章

  1. [SharePoint 2010] 如何安裝啟用多國語系支援的SharePoint網站

    SharePoint 2010的多國語系支援與前一版的SharePoint 2007有所不同,SharePoint 2010內允許使用者自行決定使用介面語系的選擇. SharePoint 2010的多 ...

  2. MQTT教學(一):認識MQTT

    http://swf.com.tw/?p=1002 本系列文章旨在補充<超圖解物聯網IoT實作入門>,採用Arduino.ESP8266和Node.js實作MQTT物聯網通訊實驗. MQT ...

  3. (转)Ubuntu 16.04 安裝Docker(PS:本文适用amd64位的ubuntu系统)

    1.前置安裝,確保你的系統是64位 $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-p ...

  4. 鸟哥之安裝 CentOS7.x

    http://linux.vbird.org/linux_basic/0157installcentos7.php since 2002/01/01 新手建議 開始閱讀之前 網站導覽 Linux 基礎 ...

  5. [转]Oracle Client 11g安裝經驗

    本文转自:http://www.dotblogs.com.tw/shadow/archive/2011/11/08/54759.aspx 開發環境:本機(Win XP)的ASP.net 4 WebSi ...

  6. windows 下使用免安裝版MySql5.5

    windows 下使用面安裝版MySql5.5步驟如下 1.解壓下載的壓縮文件到指定文件夾.如:F:\DB\mysql-5.5.18-win32\mysql-5.5.18-win32: 2.在根目錄F ...

  7. Ubuntu 12.04不能在華碩F81se系列電腦上安裝解决辦法

    本人華碩F81se系列的電腦,剛開始是裝的ubuntu 10.04的系統,周末閑的無聊,就想把系統換成ubuntu 12.04的,從ubuntu官網上下載了12.04的安裝包,下了個usb insta ...

  8. [Python學習筆記] 在Centos上安裝 Django

    曾在模擬器跟Digital Ocean上安裝成功,我在 Digital Ocean上的是CentOS 7 x64,模擬器的則是Centos 6.雖然Centos 本身已經裝好 Python 但是是2. ...

  9. Gazebo機器人仿真學習探索筆記(一)安裝與使用

    Gazebo提供了多平臺的安裝和使用支持,大部分主流的linux,Mac以及Windows,這裏結合ROS以Ubuntu爲例進行介紹. 首先是參考資料:http://gazebosim.org/tut ...

随机推荐

  1. IDEA远程连接和上传文件到服务器

    公司电脑是win,所以远程控制服务器就不能用之前自己笔记本ubuntu自带的终端了. 后来在万能的群友的提醒下,IDEA本身就自带了远程功能,摸索了一下,使用IDEA连接服务器并且可以上传文件了. 这 ...

  2. dns服务器正向解析配置

    DNS服务器的配置 一.安装软件 1.安装bind.bind-utils软件,起服务,设置开机启动. bind-utils软件用于提供nslookup功能,用于测试dns是否搭建成功,能够正常解析. ...

  3. 使用SikuliX定位Object(flash)元素

    先说一下背景,这个是我们测试的系统上的一个上传文件的地方,但是用传统的selenium方法很难定位的到.具体的样子是下面这样的. 使用id等属性定位做点击操作好像不能直接操作.无奈之下,只好从网上找找 ...

  4. CentOS7怎样安装MySQL5.7.22

    wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm下载mysql源安装包 yum install mysq ...

  5. 如何解决WinForm中TableLayout控件闪烁的问题

    public FormReg() { InitializeComponent(); typeof(TableLayoutPanel) .GetProperty("DoubleBuffered ...

  6. 【Java】《Java程序设计基础教程》第四章学习

    4.1 类的封装 封装指的是将东西包装在一起,然后以新的完整形式呈现.包含两个意义: 1). 把对象的全部属性和方法结合在一起,形成一个不可分割的独立单位(即对象). 2). 信息隐藏,即尽可能隐藏对 ...

  7. machine learning (6)---how to choose features, polynomial regression

    how to choose features, polynomial regression:通过定义更适合我们的feature,选择更好的模型,使我们的曲线与数据更好的拟合(而不仅仅是一条直线) 可以 ...

  8. stm32的hal之串口库函数总结复习

    1.串口的使用方法 在hal库中,有三个串口发送的函数 a.HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uin ...

  9. php自定义函数之回调函数

    回调函数,可以配合匿名函数和变量函数实现更加优美.复杂的一种函数结构.大理石平台价格 回调函数,就是在处理一个功能的时候,我让让这个功能自定义能力再强一些,我准许调用这个函数的时候,还可以传入一个函数 ...

  10. Java使用IE浏览器下载文件,文件名乱码问题

    String userAgent = request.getHeader("user-agent").toLowerCase(); if (userAgent.contains(& ...