XMPP4R是一个XMPP/Jabber的Ruby类库。它的目标是提供开发Jabber相关应用程序或者Ruby脚本的完整框架。
安装方法:gem install xmpp4r
示例代码:
# Send a message to a friend, asking for authorization if necessary:
im = Jabber::Simple.new("user@example.com", "password")
im.deliver("friend@example.com", "Hey there friend!")
# Get received messages and print them out to the console:
im.received_messages { |msg| puts msg.body if msg.type == :chat }
# Send an authorization request to a user:
im.add("friend@example.com")
# Get presence updates from your friends, and print them out to the console:
# (admittedly, this one needs some work)
im.presence_updates { |update|
from = update[0].jid.strip.to_s
status = update[2].status
presence = update[2].show
puts "#{from} went #{presence}: #{status}"
end
# Remove a user from your contact list:
im.remove("unfriendly@example.com")
# See the Jabber::Simple documentation for more information.
受到Frank文章的感染,决定把我使用XMPP4r在RubyOnRails中集成IM的过程按照其写的两篇文章的流程整理、分享给大家,谢谢Frank。 本文根据Frank的风格,结合我在“技能云”中使用的实际过程写的,分成如下几个大的章节: 一、XMPP概念以及原理简介 二、实现方法篇 三、结合“技能云”演示 本文采用Google在线文档编写、发布的,格式比较简洁,且能随时更新和完善,就不在重复贴在
这是一个简单的例子,如何上线和收消息,假设用户test/123,登录本机。 jid=Jabber::JID.new("test@magicgod-laptop/xmpp4r") j=Jabber::Client.new(jid) j.connect("localhost") j.auth("123") j.send(Jabber::Presence.new(
使用xmpp4r连接gmail的时候,时间长了就会断,因为我只加了一个message callback,所以如果长时间空闲,则没有任何消息发过去。可能就是因为这个服务器才会断开的。 所以要定时发一个在线信息过去,这样肯定不会自动断线了。 在主函数start里: def self.start init_all() t=Time.now while true #
openfire是一个符合xmpp协议的即时通讯服务器,java写的,很不错的服务器。 假设已经安装好(它的安装相当简单,如果要外置数据库则需要再配置一下),并且建有test1和test2两个用户,密码和用户名一样。 写一个测试用例来测试一下: require File.dirname(__FILE__) + '/../test_helper' require 'xmpp4r' class Tes
并不复杂,只要发送一个订阅的Presence就行了。 pres = Jabber::Presence.new.set_type(:subscribe).set_to(jid) conn.send(pres) conn是已经连接的jabber。 设置type为:subscribe,设 to为需要增加的好友jid就行了。 如果要自动通过别人加好友,那么要设一个callback。 roster = Ja
经常会收不到,尝试了一下,发现要加为好友,最好是把自动接受的插件打开。 如果不加为好友,发的消息往往会收不到。打开自动接受的插件,就不会因为没加为好友,影响到发消息。 而且加为好友之后是有一段延时的,并不能马上发消息的,所以越早加好友越好。
SASL全称Simple Authentication and Security Layer,是一种用来扩充C/S模式验证能力的机制。在Postfix可以利用SASL来判断用户是否有权使用转发服务,或是辨认谁在使用你的服务器。 SASL提供了一个通用的方法为基于连接的协议增加验证支持,而XMPP使用了一个普通的XML名字空间来满足SASL的需要。 在xmpp协议下客户端和服务器端的交换报文如下:
JeCat-Jabber(简称:JJ) 是一款完全由 PHP 开发的即时通讯软件。JJ 采用 Gtk2 图像界面库来实现用户界面。顾名思义 JJ 使用 Jabber 协议(XMPP) ,因此可以 和 包括 GTalk 在内的 其它任何 XMPP 即时通讯软件 聊天。 JJ 的特点 跨平台。JJ 在Linxu 环境下 开发,在 Windows 平台上也一样可以正常使用。 实用 标准的 XMPP协议,
这是一款采用JavaScript开发的基于web的Jabber客户端,它使用了Ext和Prototype的js库。
我们在之前的章节讲了 Ruby 的很多对象,学会了如何使用简单的对象(例如:数字和字符串)以及数据结构数组和哈希来完成一些工作,了解如何使用方法,做好了充足的准备。本章中,我会为大家讲解 Ruby 的类,如何创建一个类以及类的实例,以及类的实例方法如何创建。 1. 什么是 Ruby 的类 当 Ruby 运行程序的时候,会创建一个空间,我们使用具体的事物对这些空间进行填充,我们可以调用这些事物的方法
问题内容: 您对Python Jabber / XMPP客户端库有什么经验?你有什么建议吗? 问题答案: 这取决于您可以使用什么许可证。一些流行的库是GPL,如果您需要使用它来工作,尤其是需要保留专有扩展时,它会引起严重的问题。我认为LGPL库不那么受欢迎,但是您可以灵活地使用它们。 我曾经看过直接在某些简单的XMPP脚本中使用twisted,但该文档实际上不存在。就像,我开了一家出版扭曲的参考手
我们之前说过,Ruby 中的一切都是对象。本节我们要自己定义一些对象。Ruby 和其他面向对象的语言一样,使用类来组织方法,然后实例化类,创建对象。如果你刚接触“面向对象编程”(Object-Oriented Programming,简称 OOP),这些听起来都似天书一般,那我们来看一些实例吧。 4.4.1 构造方法 我们看过很多使用类初始化对象的例子,不过还没自己动手做过。例如,我们使用双引号初
我是Ruby的新手,正在尝试我在Ruby中的前几个程序来理解这些概念。现在,在类方法概念中,在尝试基础知识时,我遇到了以下问题。 我有一个类方法“Servers.valid_requestor”。 这应该检查提供的用户名是否有效,它基于我正在使用的预定义用户名,如果是,它应该在main中执行某些代码。 现在这里的问题是,每当我尝试使用myI获取用户名nput.user_name它返回my_inpu
主要内容:实例,保存并执行代码,实例下面将创建一个名为 Customer 的 Ruby 类,声明两个方法: display_details:该方法用于显示客户的详细信息。 total_no_of_customers:该方法用于显示在系统中创建的客户总数量。 实例 #!/usr/bin/ruby class Customer @@no_of_customers=0 def initialize(id, name, addr) @cus
本文向大家介绍Ruby角色类,包括了Ruby角色类的使用技巧和注意事项,需要的朋友参考一下 示例 描述符号范围 您可以显式枚举符号 或使用范围 可以组合范围和单个符号 前划线(-)被视为字符 当符号前面带有时,类可以为负 ^ 对于广泛的班级和特殊角色,有一些捷径,以及行尾 \n 将被简单地理解为换行 要转义任何保留的字符,例如/或[]和,请使用反斜杠(左斜杠)