【问题标题】:Ejabberd send message from hooksEjabberd 从钩子发送消息
【发布时间】:2011-10-17 05:28:41
【问题描述】:

我的代码中有钩子处理程序:

ejabberd_hooks:add(sm_register_connection_hook, "localhost", ?MODULE, on_register, 80),

on_register(SID, JID, INFO) ->
    {_, _, _, _, Name, _, _} = JID,
    ok.

例如,我想将此名称发送到 gen_server,我如何从这个带有名称的钩子向 gen_server 发送消息?我怎么知道on_register里面gen_server的pid?

谢谢。

【问题讨论】:

    标签: erlang hook ejabberd


    【解决方案1】:

    on_register 是?MODULE 的一个基本模块函数。如果 gen_server 是单例服务器,您可以使用 gen_server:call(?MODULE, {name, Name}) 或 gen_server:cast(?MODULE, {name, Name}) 将名称发送给它。

    所以结果应该是这样的:

    on_register(SID, JID, INFO) ->
        {_, _, _, _, Name, _, _} = JID,
        gen_server:call(?MODULE, {name, Name}),
        ok.
    

    【讨论】:

      猜你喜欢
      • 2013-11-21
      • 2015-07-01
      • 2022-06-29
      • 2012-03-27
      • 1970-01-01
      • 2021-07-30
      • 2017-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多