[英]XMPP4R icq transport troubles
jid = Jabber::JID.new('....@jabber.ru')
j = Jabber::Client.new(jid)
j.connect
j.auth('12345')
if i trying to send message through transport it responds to me 如果我尝试通过传输发送消息,它会回应我
SENDING:
<message to='2....3@icq.proc.ru' xmlns='jabber:client'><body>hi!</body></message>
=> nil
ruby-1.9.2-p290 :106 > RECEIVED:
<message from='2...3@icq.proc.ru' to='....@jabber.ru/38185266013242853702144' type='error'><error code='401' type='auth'><not-authorized xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Error. You must log into the transport before sending messages.</text></error><body>hi!</body></message>
PROCESSING:
<message from='2....3@icq.proc.ru' to='do-not-replay.perekup.net@jabber.ru/38185266013242853702144' type='error' xmlns='jabber:client'><error code='401' type='auth'><not-authorized xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Error. You must log into the transport before sending messages.</text></error><body>hi!</body></message> (Jabber::Message)
but: 但:
iq = Jabber::Iq.new(:set)
query = Jabber::IqQuery.new
query.add_namespace('jabber:iq:auth')
query.add(REXML::Element.new('username').add_text("6...6"))
query.add(REXML::Element.new('password').add_text('F...1'))
iq.add(query)
iq.to = 'icq.proc.ru'
iq
j.send iq
SENDING:
<iq to='icq.proc.ru' type='set' xmlns='jabber:client'><query xmlns='jabber:iq:authenticate'><username>6....6</username><password>F....1</password></query></iq>
=> nil
ruby-1.9.2-p290 :105 > RECEIVED:
<iq from='icq.proc.ru' to='...@jabber.ru/38185266013242853702144' type='error'><error code='501' type='cancel'><feature-not-implemented/></error></iq>
PROCESSING:
<iq from='icq.proc.ru' to='...@jabber.ru/38185266013242853702144' type='error' xmlns='jabber:client'><error code='501' type='cancel'><feature-not-implemented/></error></iq> (Jabber::Iq)
i cant use Iq.new_authset_digest(jid, session_id, password) because i cant get session_id parameter what am I doing wrong? 我无法使用Iq.new_authset_digest(jid,session_id,密码),因为我无法获取session_id参数,我在做什么错呢?
jid = Jabber::JID.new('user')
client = Jabber::Client.new(jid)
client.connect('54.187.67.96',5222)
client.auth('password')
client.send(Jabber::Presence.new.set_show(:chat).set_status('Rails!'))
puts "Hurray...!! Connected..!!"
# Send an Instant Message.
body = 'Hello from Rails'
to_jid = Jabber::JID.new('user')
message = Jabber::Message::new(to_jid, body).set_type(:normal).set_id('1')
client.send(message)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.