Slixmpp是XMPP(又名Jabber)的一个优雅的Python库。
slixmppfix的Python项目详细描述
Slixmpp是麻省理工学院授权的用于python3.5+的XMPP库。它是一个叉子 圆滑的XMPP。在
Slixmpp的目标是只重写库的核心(底层 套接字处理、计时器、事件调度)以删除所有 线程。在
建筑
Slixmpp可以利用cython来提高关键模块的性能。 为此,cython3必须与libidn头一起使用。 否则,不需要编译。建筑是通过跑步来完成的设置.py公司名称:
python3 setup.py build_ext --inplace
文件和测试
文档可以在代码中内联找到,也可以作为Sphinx项目在/docs中找到。 要生成Sphinx文档,请执行以下命令。HTML输出将 在docs/_build/html:
^{pr2}$要运行Slixmpp的测试套件:
python run_tests.py
Slixmpp样板
使用Slixmpp的项目倾向于遵循设置客户机/组件的基本模式 连接和配置。以下是Slixmpp所需样板的要点 基于项目。请参阅documentation或examples目录以获取有关的更详细的原型 Slixmpp项目:
import logging from slixmpp import ClientXMPP from slixmpp.exceptions import IqError, IqTimeout class EchoBot(ClientXMPP): def __init__(self, jid, password): ClientXMPP.__init__(self, jid, password) self.add_event_handler("session_start", self.session_start) self.add_event_handler("message", self.message) # If you wanted more functionality, here's how to register plugins: # self.register_plugin('xep_0030') # Service Discovery # self.register_plugin('xep_0199') # XMPP Ping # Here's how to access plugins once you've registered them: # self['xep_0030'].add_feature('echo_demo') # If you are working with an OpenFire server, you will # need to use a different SSL version: # import ssl # self.ssl_version = ssl.PROTOCOL_SSLv3 def session_start(self, event): self.send_presence() self.get_roster() # Most get_*/set_* methods from plugins use Iq stanzas, which # can generate IqError and IqTimeout exceptions # # try: # self.get_roster() # except IqError as err: # logging.error('There was an error getting the roster') # logging.error(err.iq['error']['condition']) # self.disconnect() # except IqTimeout: # logging.error('Server is taking too long to respond') # self.disconnect() def message(self, msg): if msg['type'] in ('chat', 'normal'): msg.reply("Thanks for sending\n%(body)s" % msg).send() if __name__ == '__main__': # Ideally use optparse or argparse to get JID, # password, and log level. logging.basicConfig(level=logging.DEBUG, format='%(levelname)-8s %(message)s') xmpp = EchoBot('somejid@example.com', 'use_getpass') xmpp.connect() xmpp.process(forever=True)
Slixmpp学分
- 维护者:
- 弗洛伦特·勒科兹(louiz@louiz.org)
- 马修·帕斯奎特(mathieui@mathieui.net)
- 贡献者:
- 艾曼纽·吉尔·佩洛特(Link mauve)
- 萨姆脸色苍白(Sam Whited)
- 丹·萨利(Dan Sully)
- 加斯佩尔·泽恩(Gasper Zejn)
- 科特伦加(Krzysztof Kotlenga)
- 津口县(Tsukasa Hiiragi)
- 马克西姆·布奎特(pep)
学分(SleekXMPP)
- 主要作者:Nathan Fritz
Nathan也是XMPPHP和Seesmic-AS3-XMPP的作者,也是 XMPP理事会。在
- 合著者:Lance Stout
- lancestout@gmail.com, @lancestout
- 贡献者:
- 布莱恩·贝格斯(macdiesel)
- 丹恩·马滕斯(dannmartens)
- 弗洛伦特·勒科兹(louiz)
- 凯文·史密斯(Kev,http://kismith.co.uk)
- 伦科·特朗松(remko,http://el-tramo.be)
- 特杰罗杰斯(te-je)
- 汤姆尼科尔斯(tomstrummer)
- 项目
标签: