Twitch Chatbot在10分钟内断开了连接,在其他2台设备上也可以正常工作

时间:2019-05-01 23:58:50

标签: python python-2.7 irc twitch

使用python2.7 twitch聊天机器人,我能够连接到Twitch的IRC服务器并响应ping,一切正常。我已经在自己的机器和我的朋友上使用此代码几个月了,没有任何问题。

新用户已开始使用该漫游器,并且每隔10分钟左右就会断开一次漫游。我已经对ping / pong进行了故障排除并调整了发送方式,并且该机器人可以对ping进行响应而没有问题,但是抽搐只是随机地停止了响应。

由于Twitch每5分钟发送一次PING并在没有收到回复的情况下断开您的连接,所以我认为这就是问题所在。我已经尝试了所有发送PONG的方法,但对于他来说仍然无法使用,但是在我这方面以及在朋友这方面,一切工作都非常好。

他检查了防火墙,路由器设置等,没有任何东西阻止它,并尝试使用端口80和6667失败。

控制台的

Here's one image崩溃时,这次完全没有引发任何错误,只是停止阅读聊天记录。忽略预取错误,这只是VLC愚蠢,几乎可以肯定是无关紧要的。

Here's another one中包含追溯错误的错误,每当崩溃时都会抛出ConnectionError。但是,这是在我的机器人中使用另一个lib的一个明显更老的错误,并且我已经确认即使该lib完全没问题,它也可以中断。

加入twitch服务器的代码如下:

def openSocket():
    global s
    s = socket.socket()
    s.connect(("irc.chat.twitch.tv", PORT))
    s.send("PASS " + BOT_OAUTH + "\r\n")
    s.send("NICK " + BOT_NAME + "\r\n")
    s.send("JOIN #" + CHANNEL + "\r\n")
    return s


def joinRoom(s):
    readbuffer = ""
    Loading = True

    while Loading:
        readbuffer = readbuffer + s.recv(1024)
        temp = string.split(readbuffer, "\n")
        readbuffer = temp.pop()

        for line in temp:
            print(line)
            Loading = loadingComplete(line)

    s = openSocket()
    joinRoom(s)

我目前正在使用两种不同的方法发送乒乓球:

                if "PING" in line:
                    s.send(("PONG :tmi.twitch.tv\r\n".encode("utf-8")))
                    print "Pong Sent"

还有一个三分钟计时器,以防万一

def PONG():
    s.send("PONG :tmi.twitch.tv\r\n".encode("utf-8"))
    print "Timer Pong Sent"
    threading.Timer(180, PONG).start()
PONG()

昨天,我在机器上连续运行了该漫游器4个小时,而没有断开连接,并且我的朋友在另一台网络上具有完全不同的机器,也没有问题。

是什么导致它无法在一个用户端使用?乒乓球系统出问题了吗?还是他的出问题了?

0 个答案:

没有答案