gpt4 book ai didi

perl - 是否有可能让 POE::Component::IRC 为其自己的 PRIVMSG 接收事件?

转载 作者:行者123 更新时间:2023-12-02 03:32:17 25 4
gpt4 key购买 nike

我目前正在使用 POE::Component::IRC 开发一个机器人除其他外,其工作是按计划向 channel 列表发布通知,为期一周。

虽然我似乎无法找到一种方法来检查消息是否已成功发送到 channel 。老Net::IRC包将为发送到 channel 的每条消息(包括它自己发送的消息)触发消息接收事件。 POE 似乎不会这样做 - 至少,当机器人自己的消息发布在 channel 上时,irc_public 事件不会触发。

是否有一个标志我可以传递给事件处理程序说“我真的很想收到所有消息,即使是我自己的消息”?或者有没有办法用某种 RAW 事件处理程序来做到这一点?

最佳答案

IRC 协议(protocol)不会将您的 PRIVMSG 回显给您,因此您只需相信服务器已收到您的消息并按应有的方式处理它。

如果您只想接收您发送的消息的 POE 事件,可以使用一个插件:POE::Component::IRC::Plugin::BotTraffic .不过,它实际上并没有做任何事情来验证消息是否到达服务器。

幸运的是,IRC 在 TCP 之上运行,它提供有保证的按顺序交付。因此,只要连接不会断开或无限期挂起,您就可以非常安全地假设您的命令到达服务器。

如果你想绝对确定,你总是可以在你的 PRIVMSG 后面加上一些你知道服务器会回复的命令,比如 TIME 或 PING;如果是,您就会知道它也收到了您的 PRIVMSG。当然,即便如此,仍然不能保证服务器确实将消息传递给了预期的收件人;网络 split 之类的事情时有发生,并可能导致消息被丢弃。

关于perl - 是否有可能让 POE::Component::IRC 为其自己的 PRIVMSG 接收事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25884639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com