1
xmpp4r을 사용하고 나중에 내 Rails 앱에서 구현하고자하는 기본 채팅 기능의 중단을 시도하고 있습니다. Ruby Threads에 대한 내 기본 사항은 여전히 불안정하기 때문에 이에 대한 도움을 주시면 감사하겠습니다.XMPP4R 콜백이 작동하지 않는 것 같습니다.
콜백을 등록해도 내 Gmail 계정의 응답을받지 못합니다. 메시지를 보낼 수 있지만 루비 프로그램이 종료됩니다. 종료를 방지하기 위해 프로그램의 스레드를 막으려 고했지만 스레드가 작동하지 않는 것 같습니다.
require 'rubygems'
require "xmpp4r/client"
require "xmpp4r/roster"
include Jabber
def connect
client = Client.new(JID::new("[email protected]"))
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", "[email protected]")
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)