MQTT協議基於聊天服務器/聊天系統,使用蚊子經紀人,Tornado作為Web服務器,客戶端(瀏覽器)side JavaScript庫中的sockjs,sockjs-tornado作為服務器端的sockjs-tornado,sockjs-sockjs在服務器端的實現和paho-mqtt(mqtt python python client)。
鏈接: http://mosquittochat.readthedocs.io/en/latest/
鏈接: https://pypi.python.org/pypi/mosquittochat
| 作者: | Anirban Roy Das |
|---|---|
| 電子郵件: | [email protected] |
| 版權(C): | 2017年,Anirban Roy Das <[email protected]> |
檢查mosquittoChat/LICENSE文件中是否有完整的版權通知。
Mosquittochat是一種基於MQTT協議的簡單聊天服務器,可以在本地設置以在LAN中進行聊天。它支持在特定時間同時連接的所有參與者之間的公眾聊天,並在這些個人參與者的情況下進行私人聊天。
它使用MQTT協議來實現實時消息傳遞系統。 MQTT以多種語言和許多軟件實施,其中之一就是蚊子,這是實施MQTT協議的消息代理。
連接是使用sockjs協議創建的。 SOCKJS以多種語言實現,主要是在JavaScript中實現的,以實時與服務器進行交談,該服務器試圖在客戶端(瀏覽器)和服務器之間創建雙層雙向連接。服務器還應實現sockjs協議。因此,使用sockjs-tornado庫,該庫在龍捲風服務器中公開了sockjs協議。
它首先試圖創建一個Websocket連接,如果失敗,則它會退回到其他運輸機制,例如Ajax ,長期投票等。建立連接後,Tornado Server **(sockjs-Tornado)**通過MQTT Python Python客戶庫通過MQTT協議連接到Mosquitto 。
因此,該連接是與龍捲風到蚊子的網絡瀏覽器,反之亦然。
| sockjs-client: | 高級Websocket JavaScript客戶端 |
|---|---|
| 龍捲風: | 異步Python Web庫 + Web服務器 |
| Sockjs-Tornado: | Sockjs WebSocket服務器實現龍捲風 |
| MQTT: | 機器對機器(M2M)/“物聯網”連接協議 |
| PAHO-MQTT: | MQTT Python客戶庫庫 |
| 蚊子: | 在C中實施MQTT的消息經紀 |
| pytest: | Python測試庫和測試跑步者,帶有很棒的測試Discobery |
| pytest-flask: | 用於燒瓶應用程序的PYTEST插件,用於使用PYTEST庫測試FASK應用程序。 |
| Uber的測試雙: | 測試python的雙庫,這是模擬庫的一個很好的替代品 |
| 詹金斯(可選): | 自託管CI服務器 |
| travis-ci(可選): | 免費用於開源ProJecs的託管CI服務器 |
| Docker: | 一種用於更好DevOps的容器化工具 |
安裝有兩種類型。一個將Rabbitchat用作二進制的人通過從PIP安裝並直接在本地計算機中運行應用程序。另一種方法是從Docker運行該應用程序。因此,Docker用例的另一組安裝步驟。
要通過您的GIT承諾將秘密和git-secrets secrets 。
這個GIT Secrets項目有助於防止誤分泌洩漏。
看,技術規格中提到的技術太多,但是依賴性僅為兩個。這是Docker的力量。
步驟1-安裝Docker
關注我的另一個GitHub項目,其中提到了與DevOps和腳本相關的所有內容以及設置開發環境以使用Docker。
- 項目:https://github.com/anirbanroydas/devops
步驟2-安裝製作
#(MAC OS) $ BREW安裝汽車 #(Ubuntu) $ sudo apt-get更新 $ sudo apt-get安裝製作
步驟3-安裝依賴項
在您的本地開發機上安裝以下依賴項,該機器將在各種腳本中使用。
$ pip安裝蚊子
如果上述依賴項未通過上述命令安裝,則使用以下步驟一個一個一個一個一個一個。
步驟1-安裝PIP
請按照以下方法安裝PIP。其中一個可以幫助您在系統中安裝PIP。
- 方法1 -https: //pip.pypa.io/en/stable/installing/
- 方法2- http://ask.xmodulo.com/install-pip-linux.html
- 方法3-如果您通過
brew install python,則PIP已與Python一起安裝。步驟2-安裝龍捲風
$ pip安裝龍捲風步驟3-安裝sockjs -tornado
$ pip安裝sockjs-tornado步驟4-安裝PAHO -MQTT
$ pip安裝paho-mqtt步驟5-安裝蚊子
用於
Mac用戶1。釀造安裝蚊子
$釀造蚊子
- 配置蚊子,通過在
/usr/local/etc/mosquitto/mosquitto.conf上修改文件。對於
Ubuntu/Linux用戶
啟用蚊子存儲庫(可選)
首先嘗試直接嘗試,如果它不起作用,請按照此步驟進行操作。
$ sudo apt-add-repository ppa:蚊子-DEV/蚊子2。通過上面的新添加來更新來源
$ apt-get更新3。最後,下載並安裝蚊子
$ sudo apt-get安裝蚊子
- 配置蚊子,通過在
/usr/local/etc/mosquitto/mosquitto.conf上修改文件。
如果您在CI設置中使用該項目(例如Travis,Jenkins),則在每次推動GitHub時,都可以設置Travis Build或Jenkins Pipeline。 Travis將使用.travis.yml文件,Jenknis將使用Jenkinsfile來完成工作。現在,如果您使用的是Travis,然後運行Travis特定的設置命令,並且對於Jenkins,請首先運行Jenkins特定的設置命令。您也可以使用兩者在那裡進行比較。
設置鍵從導出所有環境變量的.env文件中讀取值。但是您會注意到一個示例env文件,而不是.env文件。確保將env文件複製到.env ,並使用您的實際值更改/修改實際變量。
.env文件不投入git,因為在.gitignore文件中提到了它們,以防止機密數據的任何洩漏。
運行設置命令後,將為您提供許多安全密鑰。在繼續之前,將這些複製到您的配置文件。
注意:這是一次設置。注意:檢查scripts/目錄中的設置腳本,以了解提供加密鍵的環境變量是什麼。注意:不要忘記將安全鍵複製到您的.travis.yml或Jenkinsfile
注意:如果您不想將env的副本執行為.env文件並使用您的真實值更改.env中的變量值,則可以只編輯travis-setup.sh或jenknis-setup.sh腳本並直接更新其值。腳本在scripts/項目級目錄中。
重要的是:在部署到遠程服務器之前,您必須在本地計算機中運行travis-setup.sh腳本或jenkins-setup.sh腳本。
這些步驟將加密您的環境變量,以保護您的機密數據,例如API鍵,基於Docker的密鑰,部署特定鍵。
$製作Travis-Setup
這些步驟將加密您的環境變量,以保護您的機密數據,例如API鍵,基於Docker的密鑰,部署特定鍵。
$製作詹金斯(Jenkins)設定
用法有兩種類型。一個將Rabbitchat用作二進制的人通過從PIP安裝並直接在本地計算機中運行應用程序。另一種方法是從Docker運行該應用程序。因此,Docker用例的另一組用法步驟。
安裝上述依賴項後,並運行可選(如果不使用任何CI服務器)或必需(如果使用任何CI服務器) CI設置步驟,則只需運行以下命令即可使用:
您可以在本地開發機器中運行並測試該應用程序,也可以直接在遠程計算機中運行和測試。您也可以在生產環境中運行和測試。
下面的命令將在開發環境中啟動所有內容。要在生產環境中開始, -prod為每個製作命令。
例如,如果正常命令make start ,則為生產環境,請使用make start-prod 。對要在生產環境中運行的每個命令進行此修改。
例外:您不能將上述方法用於測試命令,每個環境的測試命令相同。同樣, make system-prune命令是獨立的,沒有生產特定的變化(在所有環境中保持相同)。
開始應用
$乾淨 $製造 $開始 # 或者 $ docker -compose -d
停止申請
$製作 # 或者 $ Docker-Compose Stop
刪除並清潔應用
$乾淨 # 或者 $ docker -compose rm -force -V $ echo“ y” | Docker系統修剪
清潔系統
$製作系統prune # 或者 $ echo“ y” | Docker系統修剪
檢查整個應用程序日誌
$製作止回記錄 # 或者 $ docker-compose logs-follow- -tail = 10
僅檢查Python應用程序的日誌
$製作check-logs-app # 或者 $ docker-compose logs-follow--tail = 10 Identidock
安裝蚊子後,只需運行以下命令即可使用它:
蚊子服務器
1。對於Mac用戶
#正常開始 $ Mosquitto -c/usr/local/etc/mosquitto/mosquitto.conf #如果您想在後台運行 $ squitto -c/usr/local/etc/mosquitto/mosquitto.conf -d -d #開始使用Brew Services(與Tmux不起作用,Athough有一個修復程序,其中一個拉動請求和問題中提到) $釀造服務開始蚊子
2。對於Ubuntu/LInux用戶
#正常開始 $ Mosquitto -c/usr/local/etc/mosquitto/mosquitto.conf #如果您想在後台運行 $ squitto -c/usr/local/etc/mosquitto/mosquitto.conf -d -d #開始使用服務 $ sudo服務蚊子開始 #停止使用服務 $ sudo服務蚊子停止 #使用服務重新啟動 $ sudo服務蚊子重新啟動 #檢查狀態 $服務蚊子狀態
啟動蚊子應用
$ Mosquittochat [選項]
選項
| - 港口: | 聊天服務器將啟動的端口號 |
|---|
例子
$ Mosquittochat -port = 9191
停止蚊子服務器
單擊Ctrl+C停止服務器。
注意:僅使用Docker方法進行測試。無論如何,無論是使用Docker方法還是獨立方法運行應用程序都不重要。測試獨立於此。
現在,測試是項目的主要交易。您可以通過多種方式進行測試,即,使用以下命令中提到的make ,該命令可以自動化所有內容,並且您不必知道其他任何內容,例如使用了哪些測試庫或框架,如何直接或通過docker容器進行測試,或者可能是使用tox的虛擬環境。不需要知道。
另一方面,如果您想對測試進行精細的控制,則可以通過使用pytest命令直接運行它們,或者通過tox命令在不同的Python環境中或使用docker-compose命令運行差異化測試。
但是,運行“命令”是Lawasy的策略和該項目的方法。
注意:可以直接使用托克斯,在不使用docker容器的地方。儘管我們可以嘗試在我們使用的命令中運行測試的測試對手中,但是我們必須更改Dockerfile並安裝所有python依賴項,例如python2.7 , python3.x ,然後從make容器中運行tox容器,然後從docker容器中運行tox命令,然後運行pytest的測試,該測試是在我們內部運行的,該命令是在我們內部運行的。
警告:直接使用make命令而不使用tox的唯一警告是,我們只是在單個python環境中測試該項目,Nameley python 3.6 。
測試一切
$進行測試
任何其他不使用Make的方法都將涉及編寫很多命令。因此,最好使用make命令
進行單位測試
$製作測試單位
執行組件測試
$製作測試組件
進行合同測試
$進行測試合同
進行集成測試
$進行測試融合
執行端到頭(E2E)或系統或UI接受或功能測試
$製作test-e2e # 或者 $製作測試系統 # 或者 $使測試-UI接受 # 或者 $進行測試功能