Я пытаюсь сохранить автономные сообщения ejabberd в Riak. Раньше у меня были проблемы с подключением к Riak, но теперь они разрешаются с помощью этого форума. Но теперь, с моим ограниченным пониманием Erlang/ejabberd, я не могу получить пакет ejabberd, сохраненный как строка, а затем надеть Riak. По сути, когда offline_message_hook заперт, я беру аргумент Packet, а затем хочу поместить обратную косую черту для каждой двойной кавычки, чтобы затем я мог взять эту исправленную строку и сохранить как строковое значение на Riak. Однако я, кажется, борюсь с изменением входящего пакета, чтобы заменить «символы с».Хранение пакетов ejabberd в Riak
Это правильный подход? Или я что-то пропустил в своем дизайне? Мое приложение опирается на формат xml, поэтому вместо этого я должен анализировать пакет с помощью модуля p1_xml и восстанавливать xml, используя извлеченные элементы данных, прежде чем хранить его на Riak.
Извините за самые простые и многочисленные вопросы, но оцените, если кто-то может пролить свет здесь!
Код, который я использую, чтобы попытаться заменить «с \» во входящем пакете: (это не делает достаточно работы):
NewPacket = re:replace(Packet, "\"", "\\\"", [{return, list}, global]),
Так в основном, я бы передавая NewPacket как значение к моим звонкам Riak.
Пакет, вероятно, уже разобран, где вы обрабатываете их в ejabberd. –
Привет @ MickaëlRémond - извините, не понял - вы хотите сказать, что я должен использовать модуль xml для извлечения данных из пакета ejabberd? Когда я печатаю пакет на offline_message_hook, я получаю что-то вроде ниже - так что, полагаю, мне нужно либо поставить это в двойные кавычки (как?), А затем надеть Riak, иначе я должен использовать синтаксический анализатор xml для извлечения/сохранить данные в некоторой структуре? – vikram17000
'{xmlel, <<"message">>, [{<<"type">>, <<"chat">>}, {<<"id">>, <<" purplefe7f4130 ">>}, {<<"to">>, <<" [email protected] ">>} ], [{xmlel, <<"active">>, [{<<"xmlns">>, << "http://jabber.org/protocol/chatstates" >>}], []}, {xmlel, <<"body">>, [], [{xmlcdata , << «мое текстовое сообщение» >>}]}]} ' – vikram17000