Python(Twisted) – 从fifo读取并将读取数据发送到多个协议

我试图编写某种多协议机器人(jabber / irc),它将从fifo文件(主要是一个衬里)读取消息,然后将它们发送到irc频道和jabber联系人.到目前为止,我设法创建了两个工厂连接到jabber和irc,它们似乎正在工作.

但是,我在读取fifo文件时遇到了问题 – 我不知道如何在循环中读取它(打开文件,读取行,关闭文件,跳转到打开文件等)以获取数据I需要发送,然后将数据传输到reactor循环以便在两个协议中发送.我一直在寻找有关如何以最佳方式做到这一点的信息,但我完全迷失在黑暗中.任何建议/帮助将受到高度赞赏.

提前致谢!

解决方法:

您可以在不阻塞反应器的情况下读取/写入文件描述符,就像使用套接字一样,顺便说一下套接字是否使用文件描述符?

在您的情况下,创建一个实现twisted.internet.interfaces.IReadDescriptor的类,并使用twisted.internet.interfaces.IReactorFDSet.addReader添加到reactor.有关IReadDescriptor实现的示例,请查看twisted.internet.tcp.Connection.

我不能更具体,因为我从未做过我的自己,但我希望这可能是一个起点.

上一篇:Linux之在命令行下创建有名管道FIFO


下一篇:可以在c编程中将一个fifo重定向到stdout吗?