Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python向discord发送消息_Python_Multithreading_Async Await_Discord_Python Asyncio - Fatal编程技术网

Python向discord发送消息

Python向discord发送消息,python,multithreading,async-await,discord,python-asyncio,Python,Multithreading,Async Await,Discord,Python Asyncio,我有以下问题。 我有多线程的应用程序,我希望它发送一个消息到不协调通道时,具体条件得到满足。 discord模块:是按照异步/等待符号创建的。我的应用程序是多线程的,因为它比IO更受CPU的限制。 我想将我的多线程应用程序与async/await discord模块结合起来。 我已经创建了以下代码 import discord import asyncio from threading import Thread class DiscordConnector: def __init__

我有以下问题。 我有多线程的应用程序,我希望它发送一个消息到不协调通道时,具体条件得到满足。 discord模块:是按照异步/等待符号创建的。我的应用程序是多线程的,因为它比IO更受CPU的限制。 我想将我的多线程应用程序与async/await discord模块结合起来。 我已经创建了以下代码

import discord
import asyncio
from threading import Thread

class DiscordConnector:
    def __init__(self):
        self.token = "token"
        self.imageFolder = "folder"
        self.client = discord.Client()
        self.loop = asyncio.get_event_loop()
        self.loop.create_task(self.client.start(self.token))

        self.thread = Thread(target=self.loop.run_forever)
        self.thread.start()


        self.channels = {
            "chanel1":channel1_id,
            "channel2":channel2_id,
            "channel3":channel3_id,
        }

     def sendMessage(self, symbol, imageFilename):
        symbols = symbol.split("_")
        symbol = symbols[0].lower()
        interval = symbols[1]
        self.client.get_channel(self.channels[symbol]).send("message", file=discord.File(file))
我通过创建DiscordConnector的对象并调用sendMessage方法在其他模块中调用它。 我遇到的问题是self.client.get_通道(self.channels[symbol])没有对象,它看起来无法从sendMessage访问self.client对象。 客户端的初始化看起来正常,因为服务器在discord应用程序中被标记为联机。
您是否知道如何将我的多线程应用程序与discord async/Wait语法结合起来,以便在需要时从DiscordConnector调用该方法,以便向discord频道发送消息。

如果您手动调用
self.channels[symbol]
,它是否返回正确的“频道id”?是的,这是一个命令,它保存从频道名称到频道id的映射,并且self.channels[symbols]返回正确的id。确定,并且使用该id手动处理
discord.Client()。get_channel()
?如果这些是基本问题,我很抱歉,但我只想涵盖所有基础。不,它也不起作用。就我的问题而言,我认为问题可能与线程有关,因为discord模块假定使用异步/等待语法,但我只想保留线程,并以某种方式包装客户端初始化,这需要事件循环等等。