我正在尝试过滤eJabberd中的消息。我收到带有类型服务的消息,对其进行处理,然后将其删除。
我的方法:我只是将return packet设置为<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.
您可以只返回atom drop
,ejabberd会丢弃该数据包。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句