2012-06-08 3 views
1

Я хочу, чтобы иметь возможность установить мое присутствие (то есть статус и доступность) для моей беседы google из рубинового скрипта. Кажется, я не могу заставить его работать, используя xmpp4r. Я думаю, что это может быть либо из-за того, что разговоры google не устанавливают присутствие через этот XML-протокол больше (это тег присутствия) и/или мне нужно использовать библиотеку pubsub, включенную в xmpp4r. Большая помощь очень ценится! Мой код до сих пор:Xmpp4r Google Talk Unable To Set Presence

class Simplified 
    require 'xmpp4r' 
    include Jabber 

    def initialize(usr, pwd, host, rsrc='', port=5222) 
    @usr = usr 
    @pwd = pwd 
    @host = host 
    @rsrc = rsrc 
    @port = port 

    @cl = Client.new(JID.new("#{@usr}/#{@rsrc}")) 
    @cl.connect(host, port) 
    @cl.auth(pwd) 
    end 

    # :chat, nil, :dnd, :away, :xa, :unavailable, :error 
    def status(presence, msg) 
    @presence = presence 
    @stat_msg = msg 
    stat_msg = Presence.new.set_show(:chat) 
    # stat_msg = Presence.new(@presence, @status_message, 24) 
    send stat_msg 
    end 

    def send(msg) 
    @cl.send(msg) 
    end 
end 

usr = '[email protected]' 
pwd = 'password' 
host = 'talk.google.com' 
rsrc = 'test' 

me = Simplified.new(usr, pwd, host, rsrc) 
me.status(:dnd,'new status') 
+0

вы узнали, как справиться с Эта проблема? – Lichtamberg

ответ

0

Если вы используете обычную библиотеку xmpp4r:

Ваш клиент должен отправить «присутствие» строфу:

@cl.send(Jabber::Presence.new.set_type(':available'))