无法连接到主机。 Heroku 和不和谐机器人问题

Posted

技术标签:

【中文标题】无法连接到主机。 Heroku 和不和谐机器人问题【英文标题】:Cannot connect to host. Heroku and discord bot problem 【发布时间】:2021-03-04 13:43:25 【问题描述】:

我正在使用 Wavelink 用 python 制作一个不和谐的音乐机器人。当我第一次在我的电脑上启动这个应用程序时,它运行良好,但昨天我想将它部署到 heroku,但它没有工作,所以我试图在我的电脑上再次运行它,使用相同的代码现在它根本不起作用。我认为代码与第一次完全一样,但每次我运行机器人时都会出现:

网络套接字 |连接失败:: 无法连接到主机 127.0.0.1:2333 ssl:default [Komputer zdalny odrzucił połączenie sieciowe] Traceback (最近一次通话最后):文件 “C:\Python\lib\site-packages\aiohttp\connector.py”,第 936 行,在 _wrap_create_connection return await self._loop.create_connection(*args, **kwargs) # type: ignore # noqa File "C:\Python\lib\asyncio\base_events.py", 第 1021 行,在 create_connection 中 引发异常 [0] 文件“C:\Python\lib\asyncio\base_events.py”,第 1006 行,在 create_connection sock = await self._connect_sock(文件“C:\Python\lib\asyncio\base_events.py”,第 920 行,在 _connect_sock 等待 self.sock_connect(sock, address) 文件“C:\Python\lib\asyncio\proactor_events.py”,第 702 行,在 sock_connect return await self._proactor.connect(sock, address) File "C:\Python\lib\asyncio\windows_events.py", line 808, in _poll value = callback(transferred, key, ov) 文件“C:\Python\lib\asyncio\windows_events.py”,第 595 行,在 finish_connect ov.getresult() ConnectionRefusedError: [WinError 1225] Komputer zdalny odrzucił połączenie sieciowe

上述异常是以下异常的直接原因:

Traceback(最近一次调用最后一次):文件 “C:\Python\lib\site-packages\wavelink\websocket.py”,第 76 行,在 _连接 self._websocket = 等待 self._node.session.ws_connect(uri, headers=self.headers, heartbeat=self._node.heartbeat) 文件 “C:\Python\lib\site-packages\aiohttp\client.py”,第 721 行,在 _ws_connect resp = await self.request(方法,url,文件“C:\Python\lib\site-packages\aiohttp\client.py”,第 480 行,在 _request conn = await self._connector.connect(文件“C:\Python\lib\site-packages\aiohttp\connector.py”,第 523 行,在 连接 proto = await self._create_connection(req, traces, timeout) 文件“C:\Python\lib\site-packages\aiohttp\connector.py”,第 858 行,在 _create_connection _, proto = await self._create_direct_connection( 文件“C:\Python\lib\site-packages\aiohttp\connector.py”,第 1004 行,在 _create_direct_connection 提高 last_exc 文件“C:\Python\lib\site-packages\aiohttp\connector.py”,第 980 行,在 _create_direct_connection transp,proto = await self._wrap_create_connection(文件“C:\Python\lib\site-packages\aiohttp\connector.py”,第 943 行,在 _wrap_create_connection 从 exc aiohttp.client_exceptions.ClientConnectorError 引发 client_error(req.connection_key, exc):无法连接到主机 127.0.0.1:2333 ssl:default [Komputer zdalny odrzucił połączenie sieciowe]

我认为问题出在这部分代码上:

async def start_nodes(self):
        await self.bot.wait_until_ready()

        # Initiate our nodes. For this example we will use one server.
        # Region should be a discord.py guild.region e.g sydney or us_central (Though this is not technically required)
        await self.bot.wavelink.initiate_node(host='127.0.0.1',
                                              port=2333,
                                              rest_uri='http://127.0.0.1:2333',
                                              password='youshallnotpass',
                                              identifier='TEST',
                                              region='europe')

文件 application.yml 看起来像这样:

server: # REST and WS server
  port: 2333
  address: 0.0.0.0
lavalink:
  server:
    password: "youshallnotpass"
    sources:
      youtube: true
      bandcamp: true
      soundcloud: true
      twitch: true
      vimeo: true
      mixer: true
      http: true
      local: false
    bufferDurationMs: 400
    youtubePlaylistLoadLimit: 6 # Number of pages at 100 each
    playerUpdateInterval: 5 # How frequently to send player updates to clients, in seconds
    youtubeSearchEnabled: true
    soundcloudSearchEnabled: true
    gc-warnings: true
    #ratelimit:
      #ipBlocks: ["1.0.0.0/8", "..."] # list of ip blocks
      #excludedIps: ["...", "..."] # ips which should be explicit excluded from usage by lavalink
      #strategy: "RotateOnBan" # RotateOnBan | LoadBalance | NanoSwitch | RotatingNanoSwitch
      #searchTriggersFail: true # Whether a search 429 should trigger marking the ip as failing
      #retryLimit: -1 # -1 = use default lavaplayer value | 0 = infinity | >0 = retry will happen this numbers times

metrics:
  prometheus:
    enabled: false
    endpoint: /metrics

sentry:
  dsn: ""
  environment: ""
#  tags:
#    some_key: some_value
#    another_key: another_value

logging:
  file:
    max-history: 30
    max-size: 1GB
  path: ./logs/

  level:
    root: INFO
    lavalink: INFO

你有什么想法吗?

解决方案:好的,如果你和我有同样的问题并且你正在使用 Lavalink,你必须首先启动 Lavalink 服务器。就我而言,我必须输入终端“java -jar Lavalink.jar”来启动服务器。

【问题讨论】:

这能回答你的问题吗? ***.com/questions/63347818/… 【参考方案1】:

我遇到了同样的问题,但后来我想通了

你需要设置 Lavalink

    下载OpenJDK 13.0.2然后解压 下载Lavalink 从第一步开始将 Lavalink.jar 粘贴到 bin 中
mv ./Lavalink.jar ./open-jdk/bin
    创建一个新文件application.yml并粘贴this code - 确保将address: 0.0.0.0 更改为address: 127.0.0.1
server: # REST and WS server
  port: 2333
  address: 127.0.0.1
lavalink:
  server:
    password: "youshallnotpass"
    sources:
      youtube: true
      bandcamp: true
      soundcloud: true
      twitch: true
      vimeo: true
      http: true
      local: false
    bufferDurationMs: 400
    youtubePlaylistLoadLimit: 6 # Number of pages at 100 each
    playerUpdateInterval: 5 # How frequently to send player updates to clients, in seconds
    youtubeSearchEnabled: true
    soundcloudSearchEnabled: true
    gc-warnings: true
    #ratelimit:
      #ipBlocks: ["1.0.0.0/8", "..."] # list of ip blocks
      #excludedIps: ["...", "..."] # ips which should be explicit excluded from usage by lavalink
      #strategy: "RotateOnBan" # RotateOnBan | LoadBalance | NanoSwitch | RotatingNanoSwitch
      #searchTriggersFail: true # Whether a search 429 should trigger marking the ip as failing
      #retryLimit: -1 # -1 = use default lavaplayer value | 0 = infinity | >0 = retry will happen this numbers times

metrics:
  prometheus:
    enabled: false
    endpoint: /metrics

sentry:
  dsn: ""
  environment: ""
#  tags:
#    some_key: some_value
#    another_key: another_value

logging:
  file:
    max-history: 30
    max-size: 1GB
  path: ./logs/

  level:
    root: INFO
    lavalink: INFO
    转到命令提示符并执行以下命令
pip install discord.py[voice] wavelink
    打开解压JDK的文件夹,然后输入
java -jar Lavalink.jar

这将启动 lavalink 服务器,然后你就可以使用你的机器人了


如需更多帮助,请查看this video

【讨论】:

是的!是的,我想通了,但谢谢你的回答! @fajferek 嘿,你说你想通了。我遇到了无法连接到本地主机的问题。你的决定是什么? @wjvukasovic 它对我有用-> java -jar Lavalink.jar 你必须在运行你的机器人之前输入它。

以上是关于无法连接到主机。 Heroku 和不和谐机器人问题的主要内容,如果未能解决你的问题,请参考以下文章

Heroku Discord Bot 可构建但无法正常工作

数据库无法连接到我在 digitalocean 上的不和谐机器人 (discord.py)

Nodejs App 崩溃 heroku - 错误无法连接到 localhost:27017

redis 尝试连接到 Heroku 中的本地主机 - 为啥?

试图在 heroku 上托管我的不和谐机器人但我无法获得工人。请告诉我如何解决这个问题以及在哪里

Heroku - Socket.IO 客户端总是连接到本地主机