ZeroConf与Python聊天

时间:2010-06-18 20:43:40

标签: python linux bonjour zeroconf chatbot

我正在尝试为我们的帮助台系统设置一个Bonjour(或Ahavi)聊天机器人,该系统将根据菜单系统回答基本问题。我的问题的基础是如何让python创建机器人,以便它作为聊天客户端连接到网络。

基本上,我的iChat或Empathy网络上的任何人(或任何能够通过本地网络查看用户的聊天程序)都应该看到机器人,就像他们看到另一个用户一样。实际的机器人部分编程非常简单,但我不知道如何在网络上获取它。

我已经研究过ZeroConf,但我不确定它是如何工作的,或者如何使用python运行聊天服务。我看过pybonjour的引用,avahi的python绑定和pyzeroconf,但是我再也不知道如何设置它们。

如果有人可以提供一个例子,参考,甚至一篇好文章来阅读这个主题,我们将不胜感激。谢谢!

Kory

2 个答案:

答案 0 :(得分:1)

您在这里所拥有的是您想要做什么和如何做之间的脱节。 Zeroconf / Avahi是关于服务发现的。你描述的是一个聊天机器人。聊天机器人连接到现有的聊天服务器。使用iChat的Apple略微模糊了这些线条。

iChat(可能是实现该协议的其他聊天客户端)使用Bonjour提供避免外部服务器连接的方法。

基本上你需要做的是实现一个也使用Bonjour的聊天服务器。 Bonjour部分通告该服务,聊天部分处理实际通信。您可能希望将python库用于心灵感应,例如python-telepathy或python-empathy [Telepathy] [1]。 iChat似乎在说AIM,因此这将成为调查的协议。 IIRC它还支持XMPP,所以XMPP python库可能是一个选项。

我会看[bonjour-py] [2]来宣传这项服务。这可能有点棘手,但听起来很有趣。 bonjour-py页面有许多其他术语,如果它们不能满足您的需求,您可以搜索。

[1]:http://telepathy.freedesktop.org/wiki/心灵感应之家

[2]:http://www.mcs.anl.gov/research/projects/accessgrid/bonjour-py/ bonjour-py

答案 1 :(得分:0)

最简单的方法是使用Telepathy Salut或Pidgin / libpurple,并通过D-Bus与它交谈。