首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMPP4R回调似乎不起作用

XMPP4R回调似乎不起作用
EN

Stack Overflow用户
提问于 2010-02-04 18:16:15
回答 1查看 1.1K关注 0票数 1

我正在使用xmpp4r,并试图掌握一个基本的聊天功能,我希望稍后在我的Rails应用程序中实现。我对Ruby Thread的基础知识仍然有点不稳定,所以我非常感谢大家在这方面的帮助。

虽然我注册了回调,但我没有从我的gmail帐户得到响应。我可以发送消息,但是我的ruby程序终止了。为了防止它终止,我试图停止程序中的一个线程,但我似乎不能让它工作。

代码语言:javascript
复制
require 'rubygems'
require "xmpp4r/client"
require "xmpp4r/roster"

include Jabber

def connect
    client = Client.new(JID::new("test@gmail.com"))
    client.connect
    client.auth("test")
    client.send(Presence.new.set_type(:available))
    client
end

def create_message(message, to_email)

    msg = Jabber::Message::new(to_email, message)
    msg.type = :chat
    msg
end

def subscribe(email_id)
    pres = Presence.new.set_type(:subscribe).set_to(email_id)
    pres
end

client = connect

roster = Roster::Helper.new(client)
  roster.add_subscription_request_callback do |item,pres|
    roster.accept_subscription(pres.from)
end


def create_callback(client)
  $t4= Thread.new do
            client.add_message_callback do |m|
                    puts m.body
                    puts "................................Callback working"
            end
    end

end



  puts "Client has connected"
 msg = create_message("Welcome to the winter of my discontent", "test@tech.com")
 client.send(msg)
 create_callback(client)
 def check(client)
      $t3 =  Thread.new do
            loop do

                    puts "t3 still running........."
                    Thread.current.stop
                    $t4.join
                    end
            end
end

check(client)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-11 04:00:21

您可以像XMPP4R示例那样使用Thread.stop,而不使用check(client)内容。

如果希望查看XMPP级别发生了什么,可以使用Jabber::debug = true启用控制台调试输出。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2198826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档