天天看點

mongoose 嵌入式 web伺服器

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項目 使用的它
mongoose 嵌入式 web伺服器
mongoose 嵌入式 web伺服器

jquery.js

mongoose 嵌入式 web伺服器

網頁定時 執行的文法

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通知的方式通知操作人員的浏覽器。