使用 PHP 构建 IRC 机器人,需要一些帮助
我为此使用 SmartIRC 库。 我需要做的是让机器人运行并接受用户的命令,并监听 UDP 套接字。 我通过 UDP 套接字获取需要分析、排序到 MySQL 表等的数据。 我需要 UDP 数据可供我的 BOT 使用。
所以问题是,每当我打开 UDP 套接字时,它都会在“while”循环中侦听所有数据。 因此,这意味着 IRC 机器人本身无法正常工作,直到循环结束并关闭。 我考虑过使用某种多线程解决方案,但我不确定如何使用。 我需要找到某种方法来生成 UDP 套接字的新线程,并将该数据发送到我当前正在运行的机器人。啊,没有线索。
有什么想法吗? 希望我解释得足够多,这样你们就能明白我到底想要什么。
谢谢!
I am using the a SmartIRC library for this.
What I need to be able to do is have the bot running and accepting commands from users, and also listening on a UDP socket.
I get data sent through the UDP socket that I need to analyze, sort into MySQL tables and such.
I need that UDP data to be available to my BOT.
So the problem is, whenever I open a UDP socket it listens to all the data in a 'while' loop.
So it means that the IRC bot itself is un-functional until the loop is over and closed.
I thought about using some kind of a multi-threading solution, but I am not sure how.
I need to find some way to spawn a new thread of the UDP socket, and send that data to my currently running bot. ah, no clue.
Any ideas?
Hopefully I explained it enough so you guys can understand what the hell I want.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不确定你为什么要在 while 循环中监听数据。当我过去使用 SmartIRC 时,我使用
$irc->registerActionhandler()
作为用户命令,然后调用$irc->listen( )
,这样图书馆会为您处理这一切。此处可以找到一些使用 SmartIRC 的好示例,希望它们会对您有所帮助。
I'm not sure why you're listening for data in a while loop. When I have used SmartIRC in the past I use
$irc->registerActionhandler()
for the user commands and then call$irc->listen( )
, that way the library handles it all for you.Some good examples of using SmartIRC can be found here, hopefully they will help you.