美文网首页
智能油桶后台架构

智能油桶后台架构

作者: Jonet | 来源:发表于2018-04-04 15:06 被阅读0次

ThinkPHP

开发手册

ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。
ThinkPHP5.0应用基于MVC(模型-视图-控制器)的方式来组织。

MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处理自己的任务。

5.0的URL访问受路由决定,如果关闭路由或者没有匹配路由的情况下,则是基于:

http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/参数/值…

Workerman_TCP

workerman与协议类交互流程

1、假设客户端发送一个数据包给服务端,服务端收到数据(可能是部分数据)后会立刻调用协议的input方法,用来检测这包的长度,input方法返回长度值$length给workerman框架。
2、workerman框架得到这个$length值后判断当前数据缓冲区中是否已经接收到$length长度的数据,如果没有就会继续等待数据,直到缓冲区中的数据长度不小于$length。
4、缓冲区的数据长度足够后,workerman就会从缓冲区截取出$length长度的数据(即分包),并调用协议的decode方法解包,解包后的数据为$data。
3、解包后workerman将数据$data以回调onMessage($connection, $data)的形式传递给业务,业务在onMessage里就可以使用$data变量得到客户端发来的完整并且已经解包的数据了。
4、当onMessage里业务需要通过调用$connection->send($buffer)方法给客户端发送数据时,workerman会自动利用协议的encode方法将$buffer打包后再发给客户端。

使用方法例如下面

use Workerman\Worker;
require_once '/your/path/Workerman/Autoloader.php'
$json_worker = new Worker('JsonNL://0.0.0.0:1234');
$json_worker->onMessage = function($connection, $data) {

// $data就是客户端传来的数据,数据已经经过JsonNL::decode处理过
echo $data;

// $connection->send的数据会自动调用JsonNL::encode方法打包,然后发往客户端
$connection->send(array('code'=>0, 'msg'=>'ok'));

};
Worker::runAll();
...

--


邮箱通知

SendCloud官网:每天有免费邮件发信额度
使用第三方的邮件推送服务,易接入,送达率高,自定义发信域名(域名需备案)

 /**
 * 油箱满后邮件通知用户
 */
private function send_mail() {

    $url = 'http://api.sendcloud.net/apiv2/mail/send';
    $API_USER = SENDCLOUD_USER;
    $API_KEY = SENDCLOUD_KEY;

    $param = array(
        'apiUser' => $API_USER, # 使用api_user和api_key进行验证
        'apiKey' => $API_KEY,
        'from' => 'jo@sendcloud.org', # 发信人,用正确邮件地址替代
        'fromName' => 'PREC_Jo',
        'to' => 'jo@precintl.com;elegzh@yeah.net;sky@precintl.com;kevin@precintl.com',# 收件人地址, 用正确邮件地址替代, 多个地址用';'分隔
        'subject' => '油桶溢满警告_测试',
        'html' => '支持富文本',
        'respEmailId' => 'true'
    );


    $data = http_build_query($param);

    $options = array(
        'http' => array(
            'method' => 'POST',
            'header' => 'Content-Type: application/x-www-form-urlencoded',
            'content' => $data
        ));
    $context  = stream_context_create($options);
    $result = file_get_contents($url, FILE_TEXT, $context);

    return $result;
}

MySQL数据库存储

用户名:*****
密码:*****

操作访问:http://IP:PORT/phpmyadmin
项目数据库:smart_oil_drum
现有表:device (详情见表字段,待增加user表)
表的CRUD操作 基于ThinkPHP的API,详见ThinkPHP文档


业务处理模块

相关文章

  • 智能油桶后台架构

    ThinkPHP 开发手册 ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏...

  • 电商后台产品架构2-商品中心

    类目和属性看一下这个产品经理后台架构 产品经理与电商后台产品架构 转自:产品经理与电商后台产品架构 刘志远[互联网...

  • 架构技术要点

    5层架构体系:前端架构 应用层架构 服务层架构 存储层架构 后台架构 1 前端技术 nginx apache li...

  • 大型网站架构笔记

    大型网站架构 网站架构包括:前端架构+应用层架构+服务层架构+存储层架构+后台架构+数据中心机房架构+安全架构+数...

  • 人机对话系统实现大纲

    一、语音智能交互服务技术概述二、语音智能交互系统总体设计1、语音智能交互基本架构2、语音智能技术架构(算法层、数据...

  • 后台架构

    序言:跟做房子一样,一个项目、一款产品的研发阶段都需要骨架,然后装修、点缀 后台架构分为4个板块(由底之上): 1...

  • MQTT实现消息推送

    MQTT实现消息推送 后台:websocket (后台自己架构) (as导包:):https://github.c...

  • 微服务随笔,一定要看领域驱动模型

    微服务架构非常适合当前的行情,随便一个系统,都要包含前后台,微信公众号(小程序),自己的APP,再加一个智能硬件数...

  • 小班课产品后台初步规划

    小班课的初步后台功能架构梳理

  • mysql 架构

    MySQL架构图解 MySQL物理架构 MySQL逻辑架构 mysqld: MySQL服务器守护程序,在后台运行。...

网友评论

      本文标题:智能油桶后台架构

      本文链接:https://www.haomeiwen.com/subject/xmvifftx.html