消防有哪些网站合适做,wordpress文章导入 id,用php做网站要多久,网站内容维护外包协议阅读目录 Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器Raspkate项目演示回到目录Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器 最近在业余时间玩玩树莓派#xff0c;刚开始的时候在树莓派里写一些基于wiringPi库的C语言程序来控制树莓派的GPIO引脚#x… 阅读目录 Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器Raspkate项目演示 回到目录 Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器 最近在业余时间玩玩树莓派刚开始的时候在树莓派里写一些基于wiringPi库的C语言程序来控制树莓派的GPIO引脚从而控制LED发光二极管的闪烁后来觉得是不是可以使用HTML5jQuery等流行的前端技术做一个简单的Web站点让树莓派搭载这个站点通过手机或者平板电脑来控制树莓派。经过一番调研考虑如下 使用Apache或者Nginx搭建一个Web服务器 优点服务器实现相对成熟缺点偏重而且与树莓派的交互需要涉及Service调用而实现RESTful服务对于Apache或者Nginx需要额外的组件支持要付出一定的学习成本使用PythonFlesk 优点技术相对成熟也有很多成功应用案例缺点对于我来说需要额外学习Python语言基于这样的前提鉴于目前Mono在Linux下的出色表现想想还是自己使用.NET开发一个轻量型的Web服务器吧第一期版本让它既支持静态文件的访问服务也支持RESTful API的调用在RESTful API中可以暴露访问树莓派GPIO引脚的接口供HTML5jQuery的单页面应用调用于是也就实现了在任意设备上通过浏览器来控制树莓派的目的。 回到目录 Raspkate项目 Raspkate项目的名字我想就是两个方面Rasp它来源于树莓派的英文名字Raspberry Pi有表示“小、轻量”的意义而Kate则寓意能够充分发挥开发者的想象对其进行扩展和定制。Raspkate就是这样一款基于.NET Framework、由C#开发的轻量型Web服务器它的核心部分是一个HttpListener对象通过多线程模型将HTTP请求异步委托给HttpListener执行。当一个HTTP请求被接受的时候Raspkate会根据请求的格式或类型分配特定的模块Module对请求进行处理然后将处理结果返回。如果请求的是一个文件那么Raspkate会返回文件的内容如果是一个RESTful请求则Raspkate会使用已经注册的RESTful API控制器来处理这个请求并将计算结果以JSON格式返回。 开源地址 Raspkate项目是开源的代码库地址是https://github.com/daxnet/raspkate所使用的许可协议是GPL2.0,因为其所使用的与树莓派相关的组件是第三方的由GPL2.0授权的开源库因此不能在商业环境中使用此项目。 应用场景 您可以在以下场景中使用Raspkate 在自己的应用程序中实现内建的Web服务器Self-Hosting将Raspkate寄宿在Windows Service中向外提供RESTful服务将Raspkate寄宿在Windows Service中向外提供静态Web页面请求服务将Raspkate作为树莓派中的一个独立的小型Web服务器提供控制树莓派GPIO的Web用户界面整体架构 下图展示了Raspkate项目的整体架构设计 可以看到在Raspkate核心部分就是一个HTTP Listener组件并且由Module和Configuration支撑Raspkate完成HTTP请求处理。每个模块可以包含多个HTTP Handler这在定义模块的时候可以对多个HTTP Handler进行注册。 Raspkate配置信息也就是上图中的Configuration非常简单下图就是这个配置信息的类型视图在RaspkateConfiguration对象上设定了HttpListener所使用的Prefix而Modules部分则指定了Raspkate扫描可用模块的路径IsRelative指定模块路径是否是相对的。 以下是一个标准的Raspkate配置文件 1 2 3 4 5 6 7 8 9 10 11 12 13 ?xml version1.0 encodingutf-8 ? configuration configSections section nameraspkateConfiguration typeRaspkate.Config.RaspkateConfiguration, Raspkate/ /configSections raspkateConfiguration xmlnsurn:Raspkate.Config prefixhttp://127.0.0.1:9023/ modules add pathmodules/ /modules /raspkateConfiguration /configuration 代码使用 首先使用Git客户端将代码库克隆到本地 1 git clone https://github.com/daxnet/raspkate 然后在装有MSBuild的Windows机器上执行build.bat命令 build.bat All - 这将编译所有模块并将模块的二进制文件复制到modules目录下build.bat Minimal - 这仅编译核心模块不包含类似树莓派支持等扩展模块如果是在装有Mono的Linux机器上则相应地执行build.sh即可。 在编译完成之后进入bin目录执行RaspkateService.exe即可注意如果是在树莓派中执行并且希望加载树莓派支持模块则需要通过 sudo ./RaspkateService.exe 命令执行以获得root权限。在成功启动后你应该看到类似下面的画面 这时打开浏览器在浏览器中输入http://127.0.0.1:9023您应该可以看到类似以下的画面 这表示您已经成功运行Raspkate服务此页面显示了运行服务器相关的信息。注意如果你希望你的Raspkate服务能够在同网络的其它机器访问请在执行RaspkateService.exe之前将RaspkateService.exe.config文件中的Prefix设置修改为http://:9023/。但这样做可能会牵涉到用户访问控制的问题如果将Prefix改为该值后出现Raspkate无法启动的问题请先在Command Line执行 1 netsh http add urlacl urlhttp://:9023/ usereveryone 回到目录 演示 这里有几张屏幕截图展示了Raspkate提供的相关功能。 获取并显示树莓派信息 以下屏幕截取自我的手机浏览器分别显示了我的树莓派系统信息、树莓派主板信息以及树莓派中所有引脚的名称、类型和电平值列表。 使用HTML5jQuery控制发光二极管的点亮和熄灭状态 前端是一个寄宿在Raspkate上的一个HTML5jQuery的单页面应用后端是运行Raspkate的树莓派。 出处https://www.cnblogs.com/Leo_wl/p/5319481.html转载于:https://www.cnblogs.com/mq0036/p/11140947.html