我一直在使用 xmpp4r 在此处的 SO 线程之后进行带内注册时遇到问题:
问题归结为,当我运行以下代码时,new_register 出现 NoMethodError 异常错误:
require "xmpp4r"
require "xmpp4r/client"
require "xmpp4r/iq"
def in_band_reg
chat_name = 'testChatName'
password = 'pword'
reg = Jabber::Iq.new_register(chat_name, password)
end
NoMethodError Exception: undefined method `new_register' for Jabber::Iq:Class
在 iq.rb 文件中的 xmpp4r gem 中,我可以看到 new_register 方法定义为:
def Iq.new_register(username=nil, password=nil)
...
end
但是当我检查类的方法时,我看不到 new_register 方法。IE
Jabber::Iq.singleton_methods(false)
["new_authset", "new_rosterget", "new_vcard", "new_rosterset", "import", "new_authset_digest", "new_query", "add_elementclass", "new_browseget"]
Jabber::Iq.public_instance_methods(false)
["query=", "queryns", "set_type", "type", "typed_add", "type=", "query", "vcard"]
Jabber::Iq.respond_to?("new_register")
false
知道为什么我无法访问 'xmpp4r/iq' 中的 new_register 方法吗?