Skip to content

Latest commit

 

History

History
281 lines (204 loc) · 5.85 KB

File metadata and controls

281 lines (204 loc) · 5.85 KB
Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0575
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
本教程同步发布在: 

     个人网站: `https://oeasy.org` 
     蓝桥云课: `https://www.lanqiao.cn/courses/3584` 
     GitHub: `https://github.com/overmind1980/oeasy-python-tutorial` 
     Gitee: `https://gitee.com/overmind1980/oeasypython` 
---

双层架构

我们来回顾一下 😌

  • 最初的计算
    • 都在 一个机器上进行
    • 对于自身状态 进行反馈
    • 反馈分成两种
      • 正反馈(容易失控)
      • 负反馈(稳定在平衡位置)
  • 下面这个 就是1-tier架构
    • 纯纯的 模拟电路

图片描述

  • 怎么 控制 多个 传感器 和 水泵 呢?🤔

保湿

  • 每个大棚
    • 都有湿度传感器
    • 位置是分散的
    • 数据传回 上位机

图片描述

  • 上位机
    • 其实就是一个
    • 服务器
    • server
    • 通过 处理 湿度信息 控制滴灌

处理

  • 上位机程序 接受 湿度信息 进行判断
    • 如果 湿度不够 就浇水
    • 如果 湿度达标 就停止
  • 具体 来说
    • 哪个滴灌 设备 浇水
    • 多少
    • 都是由 上位机(Host) 根据 对应的 传感器 湿度 决定的

图片描述

  • 这就是2-tier架构

Host

  • 一个 主机(Host)可以
    • 多个终端(terminal)

图片描述

  • 这种 主机-终端 模式
    • 被 保留了下来

网吧游戏

  • 不可能 所有人 都在
    • 同一个电脑上打游戏
    • 这就需要都连接到主机

图片描述

  • 有人 建主机(Host)
    • 然后 等待玩家 加入
    • 新加入的玩家 算是客(client)
  • 新客 加入 主机 建立的游戏
    • 才能玩

协议进化

  • 后来 链接的协议

    • 从局域网的ipx
    • 进化到了 英特网的tcp/ip
    • 可以 全球范围 访问了
  • 但是原理 没有变

图片描述

  • 一个 服务器
    • 响应 多个 客户端请求

服务器

  • 多个 客户端
    • 同时 连到 某ip的 服务器
    • 然后 一起玩游戏
  • 这 就分出了 两端
    • 前端
    • 后端

图片描述

  • 前后端 怎么分工 呢?

前端

  • 游戏的
    • 图形界面
    • 峡谷场景模型
    • 英雄皮肤
    • 动作数据
    • 魔法效果
    • 语音包
  • 这些看得见、听得着的东西
    • 都在 客户端
  • 更新 客户端
    • 就是 从服务器 下载这些看得见、听得着的东西
    • 就可以 看到 新的皮肤、动作和特效

图片描述

  • 那 后端 管什么 呢?

后端

  • 后端 或者说 服务端 管
    • 对玩家的奖惩
    • 拉新促活的活动
    • 对战双方的匹配
    • 铭文的装备
    • 技能的具体数值

图片描述

  • 如果 玩的时候 中
    • 把网 给断了
    • 会发生什么呢?

卡顿

  • 放大招时 网断了
    • 所以 大招指令 无法上传到服务器
    • 服务器 也就无法 更新 数据

图片描述

  • 服务器一直在运行
    • 那九个人还在玩
  • 你的客户端
    • 不但 没有放出大
    • 而且 愣在原地
    • 连不上去 了
  • 游戏更新 怎么理解?

更新

  • 运行游戏之前

    • 需要更新
  • 资源包 下载到 手机客户端(前端)

    • 更新 手机硬盘上的 app
    • 服务器 不用 停机
    • 属于 热更新

图片描述

  • 啥 放 后端 呢?

核心数据

  • 对于 你所拥有的
    • 英雄
    • 铭文
    • 皮肤
    • 都放 后端

图片描述

  • 如果 要对核心的程序 结构更新
    • 比如加入 一个防沉迷系统
    • 会发生什么呢?
  • 在 前端变化 或者 后端 调整
    • 都不行
    • 前后端 要同时 更新
  • 会发生什么呢?

先测试

  • 让部分玩家
    • 下载体验服 对应的 客户端
    • 测试客户端 连接到 测试服务器
  • 玩的过程
    • 对 新内容 反馈、调整

图片描述

  • 直到 最终发布

停服更新

  • 把 服务器 停下来(冷更新)

    • 用 新代码编译后 的 结果
    • 新服务器 代码
      • 替代旧代码
    • 服务器就更新了
  • 所有人 进客户端时

    • 更新到 新客户端
    • 连接 新服务器
    • 这就 都更新 了
    • 这C/S架构 是 因特网应用的基础

图片描述

  • 还有 一种 特殊客户端

浏览器

  • 客户端 本来 各有各的用途
    • 游戏客户端
    • 邮件客户端
    • 视频app客户端
  • 但是 浏览器 什么都能做
    • 玩游戏
    • 收发网页
    • 看视频
    • 网页版聊天

图片描述

  • 那 浏览器
    • 相对于 客户端
    • 啥好处 吗?

VS

  • 客户端能干的事情
    • 浏览器都能干
    • 而且还不用
      • 下载或者更新客户端
    • 直接 就能 用

图片描述

  • 浏览器(browser)
    • 本质上也是一个客户端(client)
    • 一个网页查看客户端
    • 也是2-tier架构
    • 分成前后两端

前后端 总结

  • 后端
    • 就是服务器
    • 负责接收请求(requests)
    • 负责发送响应(response)

图片描述

  • 前端
    • 就是浏览器
    • 负责发送请求(requests)
    • 负责接收响应(response)

总结

  • 前端 可以计算
  • 后端 也可以计算

图片描述

  • 计算 放在 哪端 好呢?
  • 下次再说👋🏻

  • 本文来自 oeasy Python 系统教程。
  • 想完整、扎实学 Python,
  • 搜索 oeasy 即可。