一、PUBLISH命令
命令格式如下:
PUBLISH <channel> <message>
当一个客户端执行PUBLISH命令的时候,会将消息message发送给频道channel
PUBLISH命令执行完之后,服务器需要执行以下两个动作:
- 将消息message发送给channel频道的所有订阅者
- 如果有一个或多个模式pattern与频道channel相匹配,那么将消息message发送给 pattern模式的订阅者
二、将消息发送给频道订阅者
因为服务器状态中的pubsub_channels字典记录了所有频道的订阅关系,所以为了将消息发送给channel频道的所有订阅者,PUBLISH命令要做的就是在pubsub_channels字典里找到频道channel的订阅者名单(一个链表),然后将消息发送给名单上的所有客户端
演示案例
- 举个例子,假设服务器pubsub_channels字典当前的状态如下图所示