Mongoose是一個web伺服器,
通過提供一個web接口給它,
它可以嵌入到現有的應用程式中去。
Mongooseweb伺服器的執行是自滿足的,它不依賴于任何其他服務。
如果你将它複制到任何目錄并執行,
它将将啟動web服務并将目前目錄作為主目錄、端口号是8080。
mongoose的源碼位址:https://github.com/cesanta/mongoose
mongoose的使用者手冊:https://www.cesanta.com/developer/mongoose
mongoose 與 websocket
mongoose 與 ajax
mongoose 與 rest
mongoose 與 django
mongoose 與 mqtt
别人的應用
Civetweb是一款小型HTTP伺服器,具有用C編寫的可選Lua和SQLite支援。它可以嵌入到C / C ++應用程式中,或用作Windows,Linux,BSD或Mac-OS的獨立Web伺服器。 該項目基于Mongoose Web伺服器,但是維護MIT許可證,并且沒有GPL許可證。 安裝指南https://github.com/civetweb/civetweb/blob/master/docs/Installing.md我們歡迎并鼓勵您貢獻自己的力量。 官方源代碼位于https://github.com/civetweb/civetweb。可能在https://github.com/civetweb/civetweb/issues報告問題。使用“ Civetweb” Google小組進行問題和讨論https:// groups.google.com/d/forum/civetweb
acu項目 使用的它
jquery.js
網頁定時 執行的文法
jquery 定時執行
setInterval(func,2700)
jquery
多國語言設定
動态資料更新
11
跨平台:Linux / Unix,QNX,eCos,Windows,Android,iPhone支援
單線程,異步,基于事件的非阻塞API
内置的協定:
普通TCP,UDP的平原,SSL / TLS(傳輸,單向或雙向)
HTTP用戶端,伺服器
WebSocket用戶端,伺服器
JSON-RPC用戶端,伺服器
MQTT用戶端,伺服器
CoAP用戶端,伺服器
DNS用戶端、DNS伺服器、異步DNS解析器
目錄
/home/sama5d2/buildroot/buildroot-2017.02.2/output/build/mongoose-6.2
.
├── examples
│ ├── api_server
│ │ ├── api_server.c
│ │ ├── db_plugin.h
│ │ ├── db_plugin_sqlite.c
│ │ ├── Makefile
│ │ ├── sqlite3.c
│ │ ├── sqlite3.h
│ │ ├── unit_test.sh
│ │ └── web_root
│ │ └── index.html
│ ├── arduino_restful_client
│ │ ├── arduino_restful_client.ino
│ │ ├── Makefile
│ │ └── README.md
│ ├── arduino_restful_server
│ │ ├── arduino_restful_server.ino
│ │ ├── Makefile
│ │ └── README.md
│ ├── big_upload
│ │ ├── big_upload.c
│ │ └── Makefile
│ ├── captive_dns_server
│ │ ├── captive_dns_server.c
│ │ └── Makefile
│ ├── coap_client
│ │ ├── coap_client.c
│ │ └── Makefile
│ ├── coap_server
│ │ ├── coap_server.c
│ │ └── Makefile
│ ├── connected_device_1
│ │ ├── Makefile
│ │ ├── server.c
│ │ └── web_root
│ │ ├── index.shtml
│ │ ├── logo.png
│ │ └── style.css
│ ├── connected_device_2
│ │ ├── Makefile
│ │ ├── server.c
│ │ └── web_root
│ │ ├── index.shtml
│ │ ├── logo.png
│ │ └── style.css
│ ├── connected_device_3
│ │ ├── Makefile
│ │ ├── server.c
│ │ └── web_root
│ │ ├── index.shtml
│ │ ├── jquery-1.11.3.min.js
│ │ ├── logo.png
│ │ ├── main.js
│ │ └── style.css
│ ├── connected_device_4
│ │ ├── Makefile
│ │ ├── server.c
│ │ └── web_root
│ │ ├── index.shtml
│ │ ├── jquery-1.11.3.min.js
│ │ ├── jquery.flot.min.js
│ │ ├── jquery.flot.time.js
│ │ ├── logo.png
│ │ ├── main.js
│ │ └── style.css
│ ├── ESP8266_RTOS
│ │ ├── gen_misc.sh
│ │ ├── ld
│ │ │ └── eagle.app.v6.512.compact.ld
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── readme.txt
│ │ └── user
│ │ ├── esp_libc.c
│ │ ├── Makefile
│ │ ├── mongoose.c -> …/…/…/mongoose.c
│ │ ├── mongoose.h -> …/…/…/mongoose.h
│ │ └── user_main.c
│ ├── examples.mk
│ ├── http_client
│ │ ├── http_client.c
│ │ ├── http_client.vcxproj
│ │ └── Makefile
│ ├── json_rpc_server
│ │ ├── json_rpc_server.c
│ │ └── Makefile
│ ├── load_balancer
│ │ ├── Dockerfile
│ │ ├── load_balancer.c
│ │ ├── Makefile
│ │ ├── README.md
│ │ └── unit_test.sh
│ ├── Makefile
│ ├── mqtt_broker
│ │ ├── Makefile
│ │ └── mqtt_broker.c
│ ├── mqtt_client
│ │ ├── Makefile
│ │ └── mqtt_client.c
│ ├── multithreaded_restful_server
│ │ ├── Makefile
│ │ └── multithreaded_restful_server.c
│ ├── netcat
│ │ ├── Makefile
│ │ └── nc.c
│ ├── publish_subscribe
│ │ ├── Makefile
│ │ └── publish_subscribe.c
│ ├── raspberry_pi_mjpeg_led
│ │ ├── cloud_side.c
│ │ ├── device_side.c
│ │ ├── docs
│ │ │ └── arch.png
│ │ ├── Makefile
│ │ ├── README.adoc
│ │ └── web_root
│ │ ├── doc.html
│ │ ├── docs
│ │ │ └── arch.png -> …/…/docs/arch.png
│ │ ├── framework7.min.css
│ │ ├── framework7.min.js
│ │ └── index.html
│ ├── restful_client
│ │ ├── Makefile
│ │ ├── restful_client.c
│ │ └── restful_client.vcxproj
│ ├── restful_server
│ │ ├── index.html
│ │ ├── Makefile
│ │ ├── restful_server.c
│ │ └── restful_server.vcxproj
│ ├── restful_server_s3
│ │ ├── index.html
│ │ ├── Makefile
│ │ ├── README.md
│ │ └── restful_server_s3.c
│ ├── rules.mk
│ ├── settings_panel_for_a_device
│ │ ├── Makefile
│ │ ├── settings_panel.c
│ │ └── web_root
│ │ ├── fossa.jpg
│ │ ├── index.shtml
│ │ └── jquery-1.11.3.min.js
│ ├── simplest_web_server
│ │ ├── Makefile
│ │ └── simplest_web_server.c
│ ├── tcp_echo_server
│ │ ├── echo_server.c
│ │ └── Makefile
│ └── websocket_chat
│ ├── index.html
│ ├── Makefile
│ └── websocket_chat.c
├── jni
│ └── Android.mk
├── libmongoose.a
├── LICENSE
├── mongoose.c
├── mongoose.h
├── mongoose.o
└── README.md
41 directories, 121 files
package/swupdate/swupdate.mk:# swupdate bundles its own version of mongoose (version 3.8)
SWUpdate: 嵌入式系統的軟體更新
package/swupdate/swupdate.mk:# swupdate bundles its own version of mongoose (version 3.8)
https://github.com/cesanta/mongoose
概述
本項目被認為有助于從存儲媒體或網絡更新嵌入式系統。但是,它應該主要作為一個架構來考慮,在這個架構中可以友善地向應用程式添加更多的協定或安裝程式(在SWUpdate中稱為處理程式)。
一個用例是從外部本地媒體(如USB-Pen或sd卡)進行更新。在這種情況下,更新是在沒有操作員幹預的情況下完成的:它被認為是“一鍵更新”,軟體在複位時啟動,隻需按下一個鍵(或者以任何目标可以識别的方式),自動進行所有檢查。最後,更新過程隻向操作員報告狀态(成功或失敗)。
輸出可以使用幀緩沖裝置顯示在LCD上,也可以定向到串行通訊端口上(Linux控制台)。
它通常用于單拷貝方案中,在initrd中運作(用Yocto提供的配方生成)。但是,通過使用軟體集合( collections ),可以在雙拷貝方案中使用它。
如果啟動了遠端更新,SWUpdate将啟動嵌入式web伺服器并等待請求。操作者必須上傳一個合适的映像,然後SWUpdate會進行檢查并安裝。所有輸出都通過AJAX通知的方式通知操作人員的浏覽器。