【问题标题】:Drop XMPP message in eJabberd在 eJabberd 中删除 XMPP 消息
【发布时间】:2014-09-19 12:06:06
【问题描述】:

我正在尝试过滤 eJabberd 中的消息。我收到类型为 service 的消息,对其进行处理,然后将其删除。

我的方法:我只是将返回数据包设置为<query xmlns="urn:xmpp:receipts"><query>。有没有更好的丢包方式?

on_filter_packet({From, To, XML} = Packet) ->
    ?INFO_MSG("on_beanstalkd ~p~n", [Packet]),
    Type = xml:get_tag_attr_s(<<"type">>, XML),
    DataTag = xml:get_subtag(XML, <<"data">>), 

    case Type =:= <<"service">> of
    true -> 
        JSON = xml:get_tag_cdata(xml:get_subtag(XML, <<"body">>)),
        {inserted, ID} = beanstalk:put(BeanstalkdPid, JSON),
        Return = #xmlel{name = <<"query">>, attrs = [{<<"xmlns">>, <<"urn:xmpp:receipts">>}]};
    false ->
        Return = Packet
    end,   
    Return.

【问题讨论】:

    标签: erlang xmpp ejabberd


    【解决方案1】:

    您可以只返回原子drop,ejabberd 将丢弃数据包。

    【讨论】:

      猜你喜欢
      • 2016-02-28
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      • 2019-09-23
      • 2019-09-20
      • 2014-01-05
      • 1970-01-01
      相关资源
      最近更新 更多