Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.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 Django通道:应用程序内部异常:消息类型app\u consumer.notification\u message没有处理程序_Python_Django_Django Channels - Fatal编程技术网

Python Django通道:应用程序内部异常:消息类型app\u consumer.notification\u message没有处理程序

Python Django通道:应用程序内部异常:消息类型app\u consumer.notification\u message没有处理程序,python,django,django-channels,Python,Django,Django Channels,我正在尝试使用WebSocket向用户发送关于特定事件的通知。 我有以下触发websocket方法的接收器模型: @receiver(预保存,发送方=设置。验证用户模型) def create_auth_令牌(发送方,实例=None,created=False,更新_字段=None,**kwargs): 如果更新_字段: 如果更新字段和instance.pan\u number\u verified中的“pan\u number\u verified”为真: notification=notif

我正在尝试使用WebSocket向用户发送关于特定事件的通知。 我有以下触发websocket方法的接收器模型:

@receiver(预保存,发送方=设置。验证用户模型)
def create_auth_令牌(发送方,实例=None,created=False,更新_字段=None,**kwargs):
如果更新_字段:
如果更新字段和instance.pan\u number\u verified中的“pan\u number\u verified”为真:
notification=notification.objects.create(消息=“您的PAN号码已被验证…前往”
“立即创建活动”。,user=instance)
通道层=获取通道层()
异步到同步(通道层组发送)(“通知%s”%instance.id{
“类型”:“应用程序\消费者.通知\消息”,
“消息”:str(notification.id)
})
以下是我的应用程序消费者:

class AppConsumer(WebsocketConsumer):
def连接(自):
self.room\u name=self.scope['url\u route']['kwargs']['user\u id']
self.room\u组\u名称='通知\u%s'%self.room\u名称
异步到同步(self.channel\u layer.group\u add)(
self.room\u group\u name,
self.channel\u名称
)
self.accept()
def断开连接(自身、关闭_代码):
异步到同步(self.channel\u layer.group\u discard)(
self.room\u group\u name,
self.channel\u名称
)
def接收(自身、文本数据):
text\u data\u json=json.load(text\u数据)
message=text\u data\u json['message']
异步到同步(self.channel\u layer.group\u send)(
self.room\u group\u name,
{
'type':'app\u consumer.notification\u message',
“消息”:消息
}
)
def通知_消息(自身、事件):
消息=事件['message']
self.send(text_data=json.dumps({
“消息”:消息
}))
但我收到以下错误消息:

应用程序内部异常:没有消息类型app\u consumer.notification\u消息的处理程序

文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/channels/consumer.py”,第59行,调用 [receive,self.channel\u receive],self.dispatch

文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/channels/utils.py”,第51行,等待发送 等待调度(结果)

文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/asgiref/sync.py”,第244行,在调用中 return wait asyncio.wait_for(future,timeout=None)

文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/tasks.py”,第414行,等待 返回等待未来

文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/concurrent/futures/thread.py”,第57行,运行中 结果=self.fn(*self.args,**self.kwargs)

线程处理程序中的文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/channels/db.py”,第14行 return super().线程处理程序(循环,*args,**kwargs)

线程处理程序中的文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/asgiref/sync.py”,第277行 返回函数(*args,**kwargs)

文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/channels/consumer.py”,第107行,在dispatch中 raise VALUERROR(“没有消息类型%s”%message[“type”]的处理程序)

没有消息类型app\u consumer.notification\u消息的处理程序


您在这里发布的是您的
通知\u消息
处理程序方法的名称

频道希望它被命名为
app\u consumer\u notification\u message

在查找消息处理方法时,通道将消息类型中的
替换为


(消息类型中的前缀不仅仅用于路由组名称)

您在此处发出的是您的
通知\u消息处理程序方法的名称

频道希望它被命名为
app\u consumer\u notification\u message

在查找消息处理方法时,通道将消息类型中的
替换为

(消息类型中的前缀不用于路由,仅用于路由组名称)