J'essaie d'enregistrer des messages ejabberd hors connexion dans Riak. J'avais auparavant des problèmes de connexion à Riak mais ceux-ci sont résolus maintenant avec l'aide de ce forum. Mais maintenant, avec ma compréhension limitée d'Erlang/ejabberd, je n'arrive pas à enregistrer le paquet ejabberd sous forme de chaîne, puis à le mettre sur Riak. Essentiellement, lorsque le mode offline_message_hook est verrouillé, je prends l'argument Packet et je veux ensuite mettre une barre oblique inverse pour chaque double guillemet, afin que je puisse ensuite prendre cette chaîne révisée et la sauvegarder en tant que valeur de chaîne sur Riak. Cependant, je semble avoir du mal à modifier le paquet entrant pour remplacer les "chars with \".Stockage des paquets ejabberd dans Riak
Est-ce la bonne approche? Ou est-ce qu'il me manque quelque chose dans mon design? Mon application repose sur le format xml, donc je devrais plutôt analyser le paquet en utilisant le module p1_xml et reconstruire le xml en utilisant les éléments de données extraits avant de le stocker sur Riak.
Excuses pour les questions très basiques et multiples mais apprécient si quelqu'un peut jeter de la lumière ici!
Le code que j'utilise pour essayer de remplacer le « avec \ » dans le paquet entrant est: (cela ne fonctionne pas tout à fait):
NewPacket = re:replace(Packet, "\"", "\\\"", [{return, list}, global]),
Donc, essentiellement, je passerai la NewPacket en tant que valeur à mes appels Riak.
Les paquets sont probablement déjà analysés là où vous les avez traités dans ejabberd. –
Salut @ MickaëlRémond - désolé n'a pas compris - voulez-vous dire que je devrais tirer parti du module xml pour extraire les points de données du paquet ejabberd? Quand j'imprime le paquet à offline_message_hook, je reçois quelque chose comme ci-dessous - donc je crois que je dois soit mettre cela entre guillemets doubles (comment?) Et ensuite mettre sur Riak, ou bien je devrais utiliser l'analyseur xml pour extraire/enregistrer les données dans une structure? – vikram17000
'{xmlel, <<"message">>, [{<<"type">], <<"chat">>}, {<<"id">>, <<" purplefe7f4130 ">>}, {<<"to">>, <<" [email protected] ">>} ], [{xmlel, <<"active">>, [{<<"xmlns">>], << "http://jabber.org/protocol/chatstates" >>}], []}, {xmlel, <<"body">>, [], [{xmlcdata , << "mon message texte" >>}]}]} ' – vikram17000