先看概念关系图:
Phoenix 实时频道城邦
│
┌────────────────────────────┼────────────────────────────┐
│ │ │
v v v
HTTP 办事线 LiveView 实时线 Channels 双向线
│ │ │
Endpoint / Plug mount / handle_* join / handle_in
│ │ │
Router HEEx diff topic event
│ │ │
Controller / HTML LiveComponent Socket client
└───────────────┬────────────┴────────────┬───────────────┘
v v
Contexts PubSub / Presence
│ │
└──────────────┬──────────┘
v
Repo / Ecto把它翻译成城市语言:
Endpoint:城门。所有请求先进城门。Plug:安检流程。谁都要过。Router:道路规划局。决定请求去哪。Controller:传统办事窗口。一次来,一次办,一次回。HEEx:公告板模板系统。负责把内容排版成 HTML。Function Component:标准化柜台部件。LiveView:市政中控室。页面长时间在线,状态留在城里。LiveComponent:中控室里的分区柜台。Channel:无线频道塔。适合任意客户端双向通信。PubSub:城市广播网。Presence:谁在线、谁离开、谁从哪台设备接入的名册。Context:职能部门边界。Repo/Ecto:档案库与档案规则。