问题标签 [poe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
284 浏览

perl - Perl POE - 如何正确生成计时器

我正在尝试在 perl 中与 POE 相处。非常缓慢地我开始掌握它的概念,但我远未真正理解它:

使用此代码,我连接到 UDP 服务器应用程序并读取其状态消息。到目前为止,它的工作原理是

我正在尝试添加一个计时器,该计时器每 10 秒发送一次 keepalive 包。

如何正确设置这样的计时器以及调用它的最佳位置是什么?我想我弄乱了对 ReadWrite 轮的反向引用,但是轮/事件等之间的这种联系仍然是我正在努力解决的问题。非常感谢您对此的任何帮助和见解。

0 投票
2 回答
78 浏览

perl - 如何针对 POE EasyDBI 编写测试?

我正在寻找一些想法或技术来编写针对使用EasyDBI session访问数据的代码的测试mysql。我不想EasyDBI session知道被测试,所以我希望找到一种方法来模拟 aDSN或类似的东西。但是,我不清楚我该怎么做。

有人以前/解决过这个问题吗?

0 投票
1 回答
360 浏览

perl - PERL POE读写轮文件IO示例?

我无法找到如何使用 POE Wheel 或任何异步进程创建和写入文件的示例。我希望能够以非阻塞方式编写大文件。我正在寻找示例,但不知道从哪里开始。

0 投票
0 回答
129 浏览

database - perl db 民意调查结果和 poe 轮运行

我正在尝试编写一个轮询数据库表并处理使用 Poe wheel run 找到的记录的应用程序。这似乎并不完美。有什么建议。

db poll sql

结果打印到屏幕并由 poe wheel run 拾取

poe轮运行

db poll 产生结果的速度比轮子处理的速度快。

有什么设计建议吗?

0 投票
1 回答
146 浏览

perl - 让基于 POE 的 IRC 机器人每小时显示一次文本

我有一个基于 POE 的 IRC 机器人,它使用“模块”作为命令集。核心 bot 脚本在 bot 主目录的 plugins 目录中加载 *.pm 文件。

我想要一个可以读取配置并每 xxx 分钟向 xxx 频道发送 xxx 文本的模块。但它必须在后台启动,才能继续加载模块。

我已经完成了一个 while(1) 循环,但只要循环处于活动状态,模块就无法继续,我也无法向它发送命令。

我正在寻找一种方法来基本上将一个子启动到后台,跟踪它的 pid,并能够随意停止它。

该机器人的架构是:

bot.pl 加载主模块 bot.pm。bot.pm 加载插件目录中的 *.pm 文件。一个插件可以包含或更多的机器人命令。

0 投票
2 回答
224 浏览

multithreading - Perl:关于如何将从阻塞调用接收到的消息转发到多个网络套接字的建议

我有以下 Perl 问题:我正在尝试构建一个简单的支持网络的转发器/消费者脚本。

  • 转发器部分循环并调用本地阻塞函数以检索新字符串(即,从现有库中)

  • 消费者部分由一个服务器组成,多个客户端可以连接到服务器(TCP 套接字)

  • 这个想法是转发器部分检索到的每条消息都被传递给客户端,即转发到所有连接的客户端套接字。

我查看了线程/共享变量,但不能以这种方式共享套接字。我还查看了 POE TCP 转发示例(http://poe.perl.org/?POE_Cookbook/TCP_Forwarding),但在那里,我没有找到如何启动一个仍然可以使用发送到 %clients 或poe_kernel 在这个具体的例子中(也许有办法......)。

简而言之:

  1. 我需要分叉或使用其他一些线程机制来首先启动转发器并在检索功能上启动循环
  2. 我需要将检索到的数据交给所有连接的客户/消费者。

这是我打算做的(注意:抽象代码):

非常感谢任何有关实施此类应用程序的良好有效方式的建议/建议!

0 投票
1 回答
192 浏览

perl - (Perl/POE) 在 POE::Component::IRC 中,如何在外部子例程中从 package_state 返回/获取数据?

我试图从我的 IRC 机器人中的 package_state 获取输出数据,它使用 POE::Component::IRC 作为基础。但我似乎无法做到。

基本上,在 POE 会话之外的子例程中,我希望在 POE 从服务器接收数据时从事件子例程中获取数据。我尝试将数据保存在全局数组甚至外部文件中,但是外部子例程会在更新数据之前从中读取旧数据。

更具体地说,我试图让这个机器人检查某人是否是“ison”,如果是,则返回 true(或从 irc_303 获取所有数据(@_))。

像这样的东西:

0 投票
2 回答
104 浏览

perl - POE::Kernel->run() 大约需要 15 秒才能停止/

这是我的代码,已经编辑了“使用”语句。他们都按要求工作。

got_response中的 Dumper 会立即打印该值,但之后我必须等待至少 15 秒才能执行POE::Kernel->run之后的 return 语句。它返回正确的值,但我不能等那么久。如果我在sub get_reponse dumper语句之后添加 exit,则不会返回任何值。

任何帮助和建议将不胜感激。

0 投票
1 回答
55 浏览

perl - 如何安装 perl-POE-Component-Jabber 2.02

我正在使用 SL6,我需要使用 yum 安装perl-POE-Component-Jabber v2.02,但我在 SL6 的任何存储库中都找不到这个包。有人能帮帮我吗?

0 投票
1 回答
125 浏览

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

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

我似乎无法找到一种方法来检查消息是否已成功发送到频道。旧Net::IRC包会为发送到通道的每条消息触发一个消息接收事件,包括它自己发送的消息。POE 似乎没有这样做 - 至少,当机器人自己的消息在频道上发布时, irc_public 事件没有触发。

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