Ejabberd отправлять сообщения от хуков - PullRequest
0 голосов
/ 01 августа 2011

В моем коде есть обработчик перехвата:

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

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

Например, я хочу отправить это имя в gen_server, как я могу отправить сообщение в gen_server, например, из этого перехвата с именем?Как я могу узнать pid gen_server внутри on_register?

Спасибо.

1 Ответ

0 голосов
/ 02 августа 2011

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.
...