Hi all,
Does anyone out there know how to implement an xmpp client to a server
like ejabberd using ruby?
Kindly, give me any links to resources.
–
Ochomo
Hi all,
Does anyone out there know how to implement an xmpp client to a server
like ejabberd using ruby?
Kindly, give me any links to resources.
–
Ochomo
Zablon O. a écrit :
Hi all,
Does anyone out there know how to implement an xmpp client to a server
like ejabberd using ruby?Kindly, give me any links to resources.
–
Ochomo
There are two xmpp library in the gem repository
Stephane W. wrote:
Zablon O. a �crit :
Hi all,
Does anyone out there know how to implement an xmpp client to a server
like ejabberd using ruby?Kindly, give me any links to resources.
–
Ochomo
There are two xmpp library in the gem repository
thanks
I had downloaded the xmpp4r gem and installed.
thanks again
The code below is working with the xmpp4r form
http://home.gna.org/xmpp4r/
require ‘XMPP4R’
begin
# Connect to the server and set presence to available for chat.
jid = Jabber::JID.new(‘myjid@xmppserver/Resource’)
client = Jabber::Client.new(jid, false)
client.connect
client.auth(‘passwd’)
client.send(Jabber::Presence.new.set_show(:chat).set_status(‘Ruby!’))
# Send an Instant Message.
body = 'Hi XMPP'
to_jid = Jabber::JID.new('tojid@xmppserver')
message = Jabber::Message::new(to_jid,
body).set_type(:normal).set_id(‘1’)
client.send(message)
end
question:
how do I receive messages, since I can only send?
ochomo
On Jan 28, 2008 2:04 AM, Zablon O. [email protected] wrote:
The code below is working with the xmpp4r form
http://home.gna.org/xmpp4r/
…
how do I receive messages, since I can only send?
Try looking at some of the examples. If you installed the gem, then go
to:
…/gems/xmpp4r-0.3.2/data/doc/xmpp4r/examples/
And, look for add_message_callback in the RDoc:
http://home.gna.org/xmpp4r/rdoc/
http://home.gna.org/xmpp4r/rdoc/classes/Jabber/Stream.html#M000487
examples/basic/echo_threaded.rb:
cl = Client::new(myJID)
cl.connect
…
cl.add_message_callback do |m|
if m.type != :error
puts m.body
end
end
On Jan 25, 2008 4:47 AM, Zablon O. [email protected] wrote:
Stephane W. wrote:
Zablon O. a �crit :
Does anyone out there know how to implement an xmpp client to a server
like ejabberd using ruby?There are two xmpp library in the gem repository
thanks
I had downloaded the xmpp4r gem and installed.
Here’s a test script I played with awhile ago to pipe the output of a
program to me over jabber using xmpp4r-simple:
require ‘rubygems’
require ‘highline’
require ‘xmpp4r-simple’
hl = HighLine.new
Username = hl.ask("Username: ")
Password = hl.ask("Password: ") { |q| q.echo = “x” }
Notifier = hl.ask("Notifier: ")
Resource = “notificabot”
Server = “XXX”
@jabber = { :username => “#{Username}/#{Resource}@#{Server}”,
:password => “#{Password}” }
@notify = “#{Username}@jabber.ctc.com”
begin
Signal.trap(:INT) { raise }
Signal.trap(:TERM) { raise }
IO.popen(Notifier, “r”) do |notifier|
im = Jabber::Simple.new(@jabber[:username], @jabber[:password])
begin
im.status(:dnd, "notificabot")
notifier.each_line do |line|
im.deliver(@notify, line.chomp)
puts line
end
rescue
puts $!.message
ensure
im.disconnect
end
end
rescue
puts $!.message
end
On 1/28/08, Zablon O. [email protected] wrote:
how do I receive messages, since I can only send?
Something like that, i believe.
client.add_message_callback do |m|
print “#{m.from} - #{m.body}\n”
end
Thanks for your help.
I googled out on xmppr4-simple. It appears to easier and working well.
Here is the code that runs well with ejabberd sever:
require ‘rubygems’
require ‘xmpp4r-simple’
im = Jabber::Simple.new(‘zo@myejabberd’,‘zo’)
im.deliver(‘gm@myejabberd’,‘hello xmpp’)
puts ‘send done’
sleep(3)
im.received_messages { |msg| puts “#{msg.body} #{msg.type}” }
im.disconnect
ochomo
Hi Zablon,
When I am running your code i am getting error:
c:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-0.3.1/lib/xmpp4r/connection.rb:53:in
init ialize': Bad file descriptor - connect(2) (Errno::EBADF) from c:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-0.3.1/lib/xmpp4r/connection.r b:53:in
new’
from
c:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-0.3.1/lib/xmpp4r/connection.r
b:53:in connect' from c:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-0.3.1/lib/xmpp4r/client.rb:73 :in
connect’
from
c:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-0.3.1/lib/xmpp4r/client.rb:60
:in connect' from c:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-0.3.1/lib/xmpp4r/client.rb:58 :in
each’
from
c:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-0.3.1/lib/xmpp4r/client.rb:58
:in connect' from c:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-simple-0.8.4/lib/xmpp4r-simpl e.rb:371:in
connect!’
from
c:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-simple-0.8.4/lib/xmpp4r-simpl
e.rb:309:in client' from c:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-simple-0.8.4/lib/xmpp4r-simpl e.rb:318:in
send!’
from
c:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-simple-0.8.4/lib/xmpp4r-simpl
e.rb:134:in status' from c:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-simple-0.8.4/lib/xmpp4r-simpl e.rb:85:in
initialize’
from gtalk123.rb:3:in `new’
from gtalk123.rb:3
Can you please help.
Regards
Lokesh Agrawal
Zablon O. wrote:
Thanks for your help.
I googled out on xmppr4-simple. It appears to easier and working well.
Here is the code that runs well with ejabberd sever:require ‘rubygems’
require ‘xmpp4r-simple’
im = Jabber::Simple.new(‘zo@myejabberd’,‘zo’)im.deliver(‘gm@myejabberd’,‘hello xmpp’)
puts ‘send done’
sleep(3)im.received_messages { |msg| puts “#{msg.body} #{msg.type}” }
im.disconnect
ochomo
Zablon O. wrote:
The code below is working with the xmpp4r form
http://home.gna.org/xmpp4r/require ‘XMPP4R’
begin
# Connect to the server and set presence to available for chat.
jid = Jabber::JID.new(‘myjid@xmppserver/Resource’)
client = Jabber::Client.new(jid, false)
client.connect
client.auth(‘passwd’)
client.send(Jabber::Presence.new.set_show(:chat).set_status(‘Ruby!’))# Send an Instant Message. body = 'Hi XMPP' to_jid = Jabber::JID.new('tojid@xmppserver') message = Jabber::Message::new(to_jid,
body).set_type(:normal).set_id(‘1’)
client.send(message)
endquestion:
how do I receive messages, since I can only send?
ochomo
Hi Zablon,
I can send IM to only by setting presence status, But my account have
more than 50 or 100 contacts. It will take long time to set the presence
and getting status message from each contact.
ie,
client.send(Jabber::Presence.new.set_show(:chat).set_status(‘Ruby!’))
line of code breaks the functionality of client.send(message).
Setting presence took long time, but before to that send message code
executed. If I have to wait for getting result of setting presence and
then running the send message code only results the required output.
Is there any way to send IM without setting Presence.
My sever installed with Openfire and IM gateway plugin. Whether I have
to install any other plugin or source to automatically log into
Transport.
Please give your valuable suggestion.
Regards,
T.Veeraa.
Veera,
I was only trying out on this code. I didnt go much deep.
I was trying to find a way of communicating between my software modules.
I decided to use ISO 8583 protocol instead.
Sorry, I wish I could help.
Ochomo
Veera S. wrote:
Zablon O. wrote:
The code below is working with the xmpp4r form
http://home.gna.org/xmpp4r/require ‘XMPP4R’
begin
# Connect to the server and set presence to available for chat.
jid = Jabber::JID.new(‘myjid@xmppserver/Resource’)
client = Jabber::Client.new(jid, false)
client.connect
client.auth(‘passwd’)
client.send(Jabber::Presence.new.set_show(:chat).set_status(‘Ruby!’))# Send an Instant Message. body = 'Hi XMPP' to_jid = Jabber::JID.new('tojid@xmppserver') message = Jabber::Message::new(to_jid,
body).set_type(:normal).set_id(‘1’)
client.send(message)
endquestion:
how do I receive messages, since I can only send?
ochomo
Hi Zablon,
I can send IM to only by setting presence status, But my account have
more than 50 or 100 contacts. It will take long time to set the presence
and getting status message from each contact.ie,
client.send(Jabber::Presence.new.set_show(:chat).set_status(‘Ruby!’))
line of code breaks the functionality of client.send(message).Setting presence took long time, but before to that send message code
executed. If I have to wait for getting result of setting presence and
then running the send message code only results the required output.Is there any way to send IM without setting Presence.
My sever installed with Openfire and IM gateway plugin. Whether I have
to install any other plugin or source to automatically log into
Transport.Please give your valuable suggestion.
Regards,
T.Veeraa.
Hi Zablon,
No problem, thanks for instant reply. If I can solve the issue, I’l keep
you posted.
Regards,
T.Veeraa.
Veera S. wrote:
Hi Zablon,
No problem, thanks for instant reply. If I can solve the issue, I’l keep
you posted.Regards,
T.Veeraa.
Hi,
I am trying to send some message over the gtalk, here is my code
require ‘rubygems’
require ‘xmpp4r-simple’
jabber = Jabber::Simple.new(‘[email protected]’,‘my_passwrd’)
but I am getting this error
initialize': A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. - connect(2) (Errno::ETIMEDOUT) from E:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-0.5/lib/xmpp4r/connection.rb:66:in
new’connect' from E:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-0.5/lib/xmpp4r/client.rb:70:in
connect’connect!' from E:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-simple-0.8.8/lib/xmpp4r-simple.rb:322:in
client’send!' from E:/ruby/lib/ruby/gems/1.8/gems/xmpp4r-simple-0.8.8/lib/xmpp4r-simple.rb:147:in
status’can u plz help me, I really need this.
Thanks,
Lareb Nawab
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs