ejabberd'de basit bir eko bot oluşturmaya çalışıyorum. Ben mod_echo çalışma Tamam olsun ve oldukça eminim kendi sürümü bir noktada çalışıyordum (hata ayıklama başım ile hileler oynadı). Aşağıdaki hatayı alıyorum ama hata ayıklamak için ne yapacağımı anlayamıyorum. Bir yönlendirme sorunu var gibi görünüyor, ancak neden emin değilim. Herhangi bir ipucu?ejabberd_router: ejabberd modülünde yol hatası
2016-03-31 16:49:38.350 [debug] <0.448.0>@ejabberd_router:do_route:324 route
from {jid,<<"user1">>,<<"alchemy.local">>,<<"alchemy">>,<<"user1">>,<<"alchemy.local">>,<<"alchemy">>}
to {jid,<<>>,<<"echo.alchemy.local">>,<<>>,<<>>,<<"echo.alchemy.local">>,<<>>}
packet {xmlel,<<"message">>,[{<<"xml:lang">>,<<"en">>},{<<"to">>,<<"echo.alchemy.local">>},{<<"id">>,<<"aacca">>}],[{xmlcdata,<<"\n">>},{xmlel,<<"subject">>,[],[]},{xmlcdata,<<"\n">>},{xmlel,<<"body">>,[],[{xmlcdata,<<"testme">>}]},{xmlcdata,<<"\n">>},{xmlel,<<"nick">>,[{<<"xmlns">>,<<"http://jabber.org/protocol/nick">>}],[{xmlcdata,<<"user1">>}]},{xmlcdata,<<"\n">>}]}
2016-03-31 16:49:38.351 [error] <0.448.0>@ejabberd_router:route:77 {function_clause,[{mod_echobot,route,[{jid,<<"user1">>,<<"alchemy.local">>,<<"alchemy">>,<<"user1">>,<<"alchemy.local">>,<<"alchemy">>},{jid,<<>>,<<"echo.alchemy.local">>,<<>>,<<>>,<<"echo.alchemy.local">>,<<>>},{xmlel,<<"message">>,[{<<"xml:lang">>,<<"en">>},{<<"to">>,<<"echo.alchemy.local">>},{<<"id">>,<<"aacca">>}],[{xmlcdata,<<"\n">>},{xmlel,<<"subject">>,[],[]},{xmlcdata,<<"\n">>},{xmlel,<<"body">>,[],[{xmlcdata,<<"testme">>}]},{xmlcdata,<<"\n">>},{xmlel,<<"nick">>,[{<<"xmlns">>,<<"http://jabber.org/protocol/nick">>}],[{xmlcdata,<<"user1">>}]},{xmlcdata,<<"\n">>}]}],[{file,"mod_echobot.erl"},{line,86}]},{ejabberd_router,route,3,[{file,"src/ejabberd_router.erl"},{line,75}]},{ejabberd_c2s,check_privacy_route,5,[{file,"src/ejabberd_c2s.erl"},{line,2121}]},{ejabberd_c2s,session_established2,2,[{file,"src/ejabberd_c2s.erl"},{line,1288}]},{p1_fsm,handle_msg,10,[{file,"src/p1_fsm.erl"},{line,582}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,237}]}]}
when processing: {{jid,<<"user1">>,<<"alchemy.local">>,<<"alchemy">>,<<"user1">>,<<"alchemy.local">>,<<"alchemy">>},{jid,<<>>,<<"echo.alchemy.local">>,<<>>,<<>>,<<"echo.alchemy.local">>,<<>>},{xmlel,<<"message">>,[{<<"xml:lang">>,<<"en">>},{<<"to">>,<<"echo.alchemy.local">>},{<<"id">>,<<"aacca">>}],[{xmlcdata,<<"\n">>},{xmlel,<<"subject">>,[],[]},{xmlcdata,<<"\n">>},{xmlel,<<"body">>,[],[{xmlcdata,<<"testme">>}]},{xmlcdata,<<"\n">>},{xmlel,<<"nick">>,[{<<"xmlns">>,<<"http://jabber.org/protocol/nick">>}],[{xmlcdata,<<"user1">>}]},{xmlcdata,<<"\n">>}]}}
2016-03-31 16:50:16.356 [debug] <0.447.0>@ejabberd_receiver:process_data:282 Received XML on stream = <<"\n">>
Bu, 'mod_echobot: route' işlevindeki' function_clause' hatasıdır. Bu, bu işlevin hata iletisinde gösterilen argümanlar ile çağrıldığı anlamına gelir, ancak bu argümanlar, bağımsız değişkenler listesiyle bu işlevin tümcelerinde eşleşemez. 'Mod_echobot: route' kaynağını görmek, hatayı tespit etmeyi basitleştirmelidir. – legoscia
Teşekkürler @legoscia - Burada bir gist oluşturdum https://gist.github.com/stevenlivz/d666200595a23c42b2a662fef87bf281 – stevenlivz
Hmm, sanki gerçekten eşleşecek cümlelerde <<"message">> kodunu kullanmam gerekiyor. Sadece "mesaj" ve benzeri kullanarak, bunu kullanmamıştı - bu dile eklenmiş bir şey miydi yoksa [Ari] için yeni bir şey eksik mi? Şimdi çalışıyor. Ayrıca, xmlelement'in şimdi xmlel olduğunu da not etmeye değer. – stevenlivz