MiraiForum

    • Register
    • Login
    • Search
    • Popular
    • Recent
    • Unsolved
    • Tags
    • Groups
    • 友情链接

    关于Python基于Mirai开发的QQ机器人中出现的问题

    开发交流
    2
    3
    372
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Hanfeng last edited by

      在使用python编写机器人时,我考虑使用python的requests库对mirai进行http轮询。
      但是我发现一个可能不算问题的问题:就是我每次使用python的requests库发送post和get请求时,每次都要花费2s左右的时间反应。这相当于在QQ群里发送消息,机器人都至少要等待好几秒才会做出反应。虽然结果正常而且我们对机器人的反应没有过大的需求,但是无疑,这样的迟钝的反应速度会大大影响使用体验。
      我尝试上网去搜寻答案,固然找到了一些解决方案,但是效果不尽人意:
      1.使用多线程或者多进程,但是似乎作用不大(因为request本身就慢,这个方法只是适用于需要在短时间内多次爬取信息,我编写这个机器人暂时可能用不上)
      2.禁用云服务器的IPv6协议,防止IPv4与IPv6协议的冲突,但是几乎没有带来任何改变
      请问一下各位大佬能支支招吗?感谢不尽。
      基本信息:
      Mirai 2.16.0
      Python 3.7.9
      requests库版本 2.31.0

      Anstiya 1 Reply Last reply Reply Quote 0
      • Anstiya
        Anstiya 摸鱼 @Hanfeng last edited by

        @Hanfeng
        改用httpx试试看

        import asyncio
        
        import httpx
        #历史上的今天,文字版
        url="https://www.ipip5.com/today/api.php"
        async def hT():
            async with httpx.AsyncClient(timeout=100) as client: #100s超时
                data = {"type": "json"}     #传递的数据
                r = await client.get(url, params=data)  #发起请求
                return r.json()   #返回结果
        if __name__ == '__main__':
            asyncio.run(hT())
        
        H 1 Reply Last reply Reply Quote 0
        • H
          Hanfeng @Anstiya last edited by

          @Anstiya 谢谢大佬!
          问题解决了,现在发送一个请求就是不到0.3s就能完成!
          再次感谢!!!

          1 Reply Last reply Reply Quote 0
          • 1 / 1
          • First post
            Last post
          Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact