天天看点

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