订阅命令字

App\Fresns\CmdWords\Subscribe

命令字描述
add_sub_plugin_item建立订阅
delete_sub_plugin_item取消订阅

订阅数据表新增数据

插件订阅数据表动态(所有数据表均可订阅)。告之主程序订阅哪张表,以及发生动态时,执行自己或者代理插件的哪个命令字;当订阅的数据表发生「新增」记录时,主程序执行插件指定的命令字。

  • 1、建立或取消订阅
    • 1.1、建立订阅时请求参数
      • 订阅类型 subscribe_type = 3
      • 订阅者(插件) subscribe_plugin_unikey
      • 订阅者的命令字 subscribe_plugin_cmd
      • 订阅哪张表 subscribe_table_name
    • 1.2、取消订阅时请求参数
      • 订阅类型 subscribe_type = 3
      • 订阅者(插件) subscribe_plugin_unikey
  • 2、主程序执行时
    • 2.1、在新增数据后,BaseModel 可以获取到 table T 和插入的 id
    • 2.2、执行 FresnsSubPluginConfig 中内置的订阅命令字 fresns_cmd_sub_add_table,该命令字扫描指定的订阅信息;
    • 2.3、如果订阅信息中的 subscribe_type = 3,则调用订阅者 subscribe_plugin_cmd 命令字,传入的参数为 tableNameinsertId
  • 3、主程序发现订阅信息时,会根据插件订阅的信息调用插件的命令字,输入参数是主程序事先根据业务规定好。

订阅用户活跃状态

插件订阅 header 信息中用户和成员请求。告之主程序订阅事件发生后执行自己的哪个命令字;当主程序 API 请求 header 信息中含有用户或成员信息后,主程序执行插件指定的命令字。

  • 1、建立或取消订阅
    • 1.1、建立订阅时请求参数
      • 订阅类型 subscribe_type = 4
      • 订阅者(插件) subscribe_plugin_unikey
      • 订阅者的命令字 subscribe_plugin_cmd
    • 1.2、取消订阅时请求参数
      • 订阅类型 subscribe_type = 4
      • 订阅者(插件) subscribe_plugin_unikey
  • 2、主程序执行时
    • 2.1、在接口 header 中如果有用户或成员参数后,可以获取到 usermemeber 信息;
    • 2.2、执行 FresnsSubPluginConfig 中内置的订阅命令字 fresns_cmd_sub_active_user,该命令字扫描指定的订阅信息;
    • 2.3、如果订阅信息中的 subscribe_type = 4,则调用订阅者 subscribe_plugin_cmd 的命令字,传入的参数为 uidmid
  • 3、主程序发现订阅信息时,会根据插件订阅的信息调用插件的命令字,输入参数是主程序事先根据业务规定好。

订阅命令字行为

插件订阅指定命令字的行为反馈。告之主程序订阅哪个命令字,以及发生行为后,执行自己或者代理插件的哪个命令字;当订阅的命令字发生「执行」操作时,主程序执行插件指定的命令字。

  • 1、建立或取消订阅(目前仅支持订阅 fresns_cmd_direct_release_content 命令字)
    • 1.1、建立订阅时请求参数
      • 订阅类型 subscribe_type = 5
      • 订阅者(插件) subscribe_plugin_unikey
      • 订阅者的命令字 subscribe_plugin_cmd
      • 订阅哪个命令字 subscribe_command_word
    • 1.2、取消订阅时请求参数
      • 订阅类型 subscribe_type = 5
      • 订阅者(插件) subscribe_plugin_unikey
  • 2、主程序执行时
    • 2.1、当命令字执行完操作任务后,会将 tableName、insertId、commandWord 三个信息传参给 fresns_cmd_sub_active_command_word
    • 2.2、命令字 fresns_cmd_sub_active_command_word 接受到指令后,扫描 subscribe_type = 5 的订阅信息;
    • 2.3、如果订阅信息中的 subscribe_command_word = $commandWord,则调用订阅者 subscribe_plugin_cmd 的命令字,传入的参数为 tableNameinsertId
      • tableName = postscomments
      • insertId = 主键 ID
订阅预留参数
  • 代理执行插件 anget_plugin_unikey
  • 代理执行插件命令字 anget_plugin_cmd