现在来到 Phoenix 名字里“实时频道”最经典的部分:Channels。
Channels 和 LiveView 都实时,但它们不是同一种东西。
你要把 Channel 想成:
城里的无线频道塔
不同客户端拿着收发机接入
按 topic 进入不同频道
在频道里双向发消息Phoenix Channels 官方文档里有两个特别关键的点:
- 客户端先建一个 Socket 连接
- 在同一条连接上,可以复用加入多个 Channel topic
也就是:
一根总无线链路
├── district:1
├── district:2
├── alerts:global
└── user:42而且 Phoenix 官方文档明确指出:
每个客户端、每个 topic,会启动一个轻量 channel 进程。
这就是 Phoenix 能把实时通信做得很自然的原因之一。