Python IRC机器人静默超时(?)-突然停止工作
我最近开始写我自己的IRC机器人,没什么特别的,只是读一个频道,然后发布一个文本文件的内容来执行特定的命令Python IRC机器人静默超时(?)-突然停止工作,python,sockets,irc,Python,Sockets,Irc,我最近开始写我自己的IRC机器人,没什么特别的,只是读一个频道,然后发布一个文本文件的内容来执行特定的命令 # let's connect irc_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) irc_socket.connect((server, 6667)) # now we login and send a test message irc_socket.send(str.encode('PASS ' + pw +
# let's connect
irc_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
irc_socket.connect((server, 6667))
# now we login and send a test message
irc_socket.send(str.encode('PASS ' + pw + '\r\n'))
irc_socket.send(str.encode('NICK ' + bot + '\r\n'))
irc_socket.send(str.encode('USER ' + bot + '\r\n'))
irc_socket.send(str.encode('JOIN #' + channel + '\r\n'))
while 1:
text = irc_socket.recv(2040).decode()
if text.startswith('!ideen'):
do stuff #lot of code, shouldn't be of importance
奇怪的是,每件事都按我所希望的那样工作,但由于某些原因,它在一段时间后停止工作。它不会超时或给出任何错误,只是完全停止反应。首先,我认为它会因为太多的消息而过载,但如果频道仅仅空了20分钟左右,这种情况也会发生。当我从Pycharm或命令行运行它时,也会发生同样的情况(不确定为什么会有不同)
我可能不是唯一一个有问题的人,但我什么也找不到。感谢您的帮助,甚至是关于如何调试类似内容的提示
IRC频道是Twitch IRC聊天,如果这很重要的话
编辑:尝试了@matt-m提示进行调试,似乎他不再收到消息。文本消息始终是空字符串 您是否可能没有用
PONG
响应服务器PING
如果连接未能响应PING
消息,则该连接将关闭
所以你应该确保你做到了。我原以为当连接关闭时会引起一些套接字错误,但据我所知,情况并非总是如此 您是否可能没有用
PONG
响应服务器PING
如果连接未能响应PING
消息,则该连接将关闭
所以你应该确保你做到了。我原以为当连接关闭时会引起一些套接字错误,但据我所知,情况并非总是如此 等待它“冻结”,然后在调试器中暂停以查看它卡在哪一行上。我猜,
irc_socket.recv(2040).decode()
谢谢你的想法,我编辑了我的帖子。等待它“冻结”,然后在调试器中暂停,看看它卡在哪一行。我猜,irc_socket.recv(2040).decode()
谢谢你的想法,我编辑了我的帖子。谢谢,我看到服务器发出了一些ping,但没有意识到我需要回复它们。我明天会试试这个并给出反馈!这项工作做得很好,运行了两个多小时,没有任何问题。再次感谢!谢谢,我看到一些ping来自服务器,但没有意识到我需要响应它们。我明天会试试这个并给出反馈!这项工作做得很好,运行了两个多小时,没有任何问题。再次感谢!