如何通过代理连接不和谐机器人

2024-01-12

我正在尝试使用discord.py 并通过代理运行discord 机器人。这关于此的不一致文档 https://discordpy.readthedocs.io/en/latest/api.html?highlight=proxy#discord.Client关于这个主题的知识非常少,而且不是最新的aiohttp 实现。 https://aiohttp.readthedocs.io/en/stable/client_reference.html#connectors

Discordpy 文档基本上说使用 ProxyConnector 并在创建客户端时将其作为参数传递。 但在 aiohttp 中,这种方式已被弃用,建议使用 client.ClientSession().get 代替。问题是,client.ClientSession().get 要求我提供一个 URL。

无论如何,我也尝试过使用 ProxyConnector,但当我最终运行机器人时它不起作用(无法连接到不和谐的 API)。我不确定它有什么问题,因为代理本身可以与任何其他 HTTPS 服务一起正常工作。


推荐方式代码

conn = client.ClientSession().get(proxy='<proxy_url>', proxy_auth=BasicAuth(<proxy_auth>))

self.client = discord.Client(connector=conn)

不推荐使用的代码

conn = ProxyConnector(proxy='<proxy_url>', proxy_auth=BasicAuth(<proxy_auth>))

self.client = discord.Client(connector=conn)

追溯

Traceback (most recent call last):
  File "C:/Users/airiau/PycharmProjects/pronostics/main.py", line 50, in <module>
    main()
  File "C:/Users/airiau/PycharmProjects/pronostics/main.py", line 46, in main
    bot.run(config['token'])
  File "C:\Users\airiau\PycharmProjects\pronostics\sample\DiscordBot.py", line 352, in run
    self.client.run(self.token)
  File "C:\Users\airiau\venv-3.6\lib\site-packages\discord\client.py", line 519, in run
    self.loop.run_until_complete(self.start(*args, **kwargs))
  File "C:\Program Files (x86)\Python36-32\lib\asyncio\base_events.py", line 468, in run_until_complete
    return future.result()
  File "C:\Users\airiau\venv-3.6\lib\site-packages\discord\client.py", line 491, in start
    yield from self.connect()
  File "C:\Users\airiau\venv-3.6\lib\site-packages\discord\client.py", line 444, in connect
    self.ws = yield from DiscordWebSocket.from_client(self)
  File "C:\Users\airiau\venv-3.6\lib\site-packages\discord\gateway.py", line 207, in from_client
    timeout=60, loop=client.loop)
  File "C:\Program Files (x86)\Python36-32\lib\asyncio\tasks.py", line 358, in wait_for
    return fut.result()
  File "C:\Users\airiau\venv-3.6\lib\site-packages\discord\gateway.py", line 65, in _ensure_coroutine_connect
    ws = yield from websockets.connect(gateway, loop=loop, klass=klass)
  File "C:\Users\airiau\venv-3.6\lib\site-packages\websockets\py35\client.py", line 19, in __await__
    return (yield from self.client)
  File "C:\Users\airiau\venv-3.6\lib\site-packages\websockets\client.py", line 210, in connect
    factory, wsuri.host, wsuri.port, **kwds)
  File "C:\Program Files (x86)\Python36-32\lib\asyncio\base_events.py", line 787, in create_connection
    ', '.join(str(exc) for exc in exceptions)))
OSError: Multiple exceptions: [Errno 10060] Connect call failed ('104.16.59.37', 443), [Errno 10060] Connect call failed ('104.16.60.37', 443)

通过不断的研究,我发现了这一点link https://www.pythonanywhere.com/forums/topic/3291/有了这个答案:

discord.py 使用的 WebSocket 似乎不支持 HTTP 代理。这会神奇地与 HTTPS 一起工作,但是由于 代理是HTTP,但它不是。这意味着,除了重写 具有 HTTP 代理支持的discord.py(通过使用 websocket-client,用于 例如,它支持 HTTP 代理),我们可能不走运。

看起来似乎不可能完全做到这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过代理连接不和谐机器人 的相关文章

随机推荐

  • SQL 全外连接

    我正在尝试编写一个连接语句将以下三个数据集连接在一起 这是使用 MS SQL Server Set 1 ID Date Col1 1 Jan 11 a1 1 Jan 13 a2 Set 2 ID Date Col2 1 Jan 11 b1
  • 如何使 div 的高度固定,但如果内容大于高度,则 div 会增长?

    假设我有一个我设置的 divheight 500px 在CSS中 因此它的高度是固定的 我的页面内容是用 JavaScript 自动生成的 因此有时它会大于 500px 并且会溢出 div 边框 我的问题是 是否可以有固定的大小 例如 50
  • 如何使用自定义密钥编写 MifareClassic

    我需要找到一个解决方案来使用自定义密钥编写 Mifare Classic 1 K 标签 我无法编写它 我已经尝试了每个选项 但不幸的是我总是收到错误 IOException 收发失败 下面是我的代码片段 byte custom key by
  • jQuery:如何从加载回调中修改加载的内容

    我正在动态创建许多 div 元素 行 每行都将具有相同的基本格式 仅文本发生变化 由于行结构很复杂 我尝试从静态 html 文件加载 基本 div 然后加载后 使用每行的参数调整一些属性 类似于 Android 的 xml 定义的适配器 我
  • Angular 2 HTTP POST 执行 OPTIONS 调用

    我的 Angular 2 应用程序遇到了一个非常奇怪的问题 我实际上想对我的 Play Scala API 进行包含 JSON 的 POST 调用 但它一直想尝试进行 OPTIONS 调用 这是我的代码 登录服务 constructor p
  • 枚举成员的字符串化

    我需要将枚举成员 其值 而不是标识符 转换为字符串 我尝试了以下方法 它适用于 MACRO TYPE A 但不适用于枚举值 typeA 我认为这有点奇怪 您知道如何做到这一点吗 define tostr a a define tostr a
  • 如何检查 Selenium Server 是否正在运行

    我有一堆 phpunit 测试 其中一部分使用 selenium 我需要知道 selenium 服务器是否正在运行 Windows 有没有办法从php检查它 默认情况下 Selenium 服务器接受本地主机端口 4444 上的命令 所以你可
  • “Csc.exe”退出,代码为-1073741819

    每次我尝试运行我的代码时 都会遇到此错误 Csc exe 退出 代码为 1073741819 我清理了我的解决方案并重新启动了 Visual Studio 但没有任何收获 谁能帮我 我遇到了同样的问题 删除项目中的 bin 和 obj 文件
  • 如何在 Spring Data JPA 中编写动态原生 SQL 查询?

    我需要在 Spring Boot Web 应用程序中的数据库中的多个表上编写搜索查询 它使用 spring data jpa 我知道我们可以使用 Query 注释和 native true 标志在 spring data jpa 中编写本机
  • 实体框架核心:无法添加迁移:没有无参数构造函数

    我的数据项目参考 Entity Framework Core
  • 有效检测损坏的 jpeg 文件?

    有没有一种有效的方法来检测 jpeg 文件是否损坏 背景资料 解决方案需要在 php 脚本内工作jpeg 文件位于磁盘上无法手动检查 用户上传的数据 我知道imagecreatefromjpeg string filename 可以做到 但
  • Python ascii utf Unicode

    当我解析这个 XML 时p xml parsers expat ParserCreate
  • 使用 OAuth 时 Instagram 返回“未找到匹配代码或已使用”

    我正在尝试使用Instagram OAuth使用开发人员文档 https www instagram com developer authentication https www instagram com developer authen
  • 在元素后插入仅打开的 HTML 标签?

    我想在页面上的 H1 元素后面插入几个开始 DIV 标记 而不插入相应的结束标记 因为结束标记包含在我无权访问的包含页脚文件中 IE 现有代码 h1 Heading One h1 page content 新代码 h1 Heading On
  • Nginx 重写或内部重定向循环,同时内部重定向到“/index.html”

    我使用 Php 框架在 nginx 上实现 Web 服务器 没有任何 index html 网页工作正常 但某些脚本无法工作 它显示 500 内部服务器错误 这是服务器日志 2016 11 16 11 08 38 错误 2551 0 738
  • Google Play 应用内结算版本 3:因“已拥有的项目”而崩溃并缺少失败通知

    在 最终 发布 Google Play 应用内结算的 v2 实现之后 除了发布后的问题之外 我什么也没遇到 交易失败 崩溃 无法恢复 诸如 无法下载 您已经拥有该项目 之类的疯狂错误 以及各种其他荒谬的事情 老实说 我现在已经在 iOS A
  • MultipartFormDataStreamProvider 清理

    如果文件发布到我的网络应用程序 那么我通过以下方式读取它们MultipartFormDataStreamProvider FileData 我像这样初始化提供者 string root HttpContext Current Server
  • Spring Ldap - 多个基本名称

    我正在尝试使用 spring LDAP ODM 从 LDAP 接收一些属性 有没有办法在中配置多个基本名称
  • Sprintf 重复值

    这是一个简单的问题 我需要在 sprintf 函数中复制值 sprintf s s s arg1 arg1 arg2 我怎样才能只传递 arg1 一次 似乎无法在 php net 上找到答案 Thanks Andrew 使用索引格式 1 s
  • 如何通过代理连接不和谐机器人

    我正在尝试使用discord py 并通过代理运行discord 机器人 这关于此的不一致文档 https discordpy readthedocs io en latest api html highlight proxy discor