Erlang exmpp получает тело из пакета - PullRequest
2 голосов
/ 20 мая 2011

Мне нужно получить атрибут body из входного пакета xmpp с Erlang / xmpp.

Я получаю пакет:

 Record = #received_packet{packet_type=message,
                  raw_packet=Packet,
                  from=From,
                  type_attr=Type} when Type =/= "error

Как мне извлечь тело сообщения из Packet?

Спасибо.

Ответы [ 2 ]

1 голос
/ 22 мая 2011

если вы используете exmpp, вы можете использовать модуль exmpp_message: get_body / 1

http://www.process -one.net / docs / exmpp / devdoc / trunk / exmpp_message.html

0 голосов
/ 20 мая 2011

Не уверен, что вы уже просмотрели примеры exmpp.Вот фрагмент из примера echo_client.erl:

%% Send the same packet back for each message received
echo_packet(MySession, Packet) ->
    From = exmpp_xml:get_attribute(Packet, <<"from">>, <<"unknown">>),
    To = exmpp_xml:get_attribute(Packet, <<"to">>, <<"unknown">>),
    TmpPacket = exmpp_xml:set_attribute(Packet, <<"from">>, To),
    TmpPacket2 = exmpp_xml:set_attribute(TmpPacket, <<"to">>, From),
    NewPacket = exmpp_xml:remove_attribute(TmpPacket2, <<"id">>),
    exmpp_session:send_packet(MySession, NewPacket).
...