gpt4 book ai didi

python - 为什么这段Python代码在无法连接OBS软件时需要2分钟才能退出?

转载 作者:太空宇宙 更新时间:2023-11-04 02:16:18 25 4
gpt4 key购买 nike

我是 Python 新手,对 asyncio 了解不多。我想运行这个脚本,如果它试图连接到 10.11.0.124 的 OBS 软件没有运行退出代码。该代码执行此操作,但需要 2 分钟才能退出。我想不通为什么它不能连接到不是在10.11.0.124上运行的OBS软件时没有立即退出。

#! /usr/bin/python3

import asyncio
import urllib.request
import sys
import datetime

from obswsrc import OBSWS
from obswsrc.requests import StartStopStreamingRequest

def logger(logmessage):
f = open("log.txt", "a")
f.write(str(datetime.datetime.now()) + " " + logmessage + "\n")
f.close

async def main():

try:
async with OBSWS('10.11.0.124', 4444, "password") as obsws:

logger("Connection established.")

while True:

event = await obsws.event()

logger(str(format(event.type_name)))

if(format(event.type_name) == "StreamStarting"):
HitURLToLoadAsset = urllib.request.urlopen("http://10.11.0.159/api/v1/assets/control/asset&b0983c0918b94856900040d9a9e8bdbf").read()
logger(str(HitURLToLoadAsset))

if(format(event.type_name) == "StreamStopped"):
HitURLToLoadAsset = urllib.request.urlopen("http://10.11.0.159/api/v1/assets/control/asset&3b2fb67002364b269d0c2674a628533c").read()
logger(str(HitURLToLoadAsset))

logger("Connection terminated.")

except OSError:
logger("OBS IS NOT RUNNING")

except:
logger(str(sys.exc_info()[1]))


loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.close()

最佳答案

OBSWS 函数的超时时间为两分钟,因为它在内部使用了 websockets 模块,并且默认超时时间为两分钟。

详分割类:

我不明白asyncio 所以我就停在这里;某处可能还有 60 秒的延迟,但如果没有……可能是计算机速度太慢了。

关于python - 为什么这段Python代码在无法连接OBS软件时需要2分钟才能退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52572196/

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