django 频道 message.reply_channel 没有属性发送
django channels message.reply_channel no attribute send
我一直在努力了解 Django 的渠道,但我无法将消息发送到我的 websocket。
这是我的consumers.py
import logging
from django.contrib.sites.models import Site
from django.utils import timezone
from channels import Group
from .models import *
import json
def send_free(message):
try:
pi = PInformation.objects.get(
pk=message.content.get('pk'),
)
except Parkplatzinformationen.DoesNotExist:
logging.error("PI not found!")
return
try:
message.reply_channel.send({
"text": 1,
})
except:
logging.exception('Problem sending %s' % (pi.name))
我的routing.py
from channels.routing import route
from RESTAPI.consumers import send_free
channel_routing = [
route('send-free',send_free),
]
我收到错误 AttributeError: 'NoneType' object has no attribute 'send'
。但是它确实获得了 PInformation 对象,因此它确实可以工作 "bit"。我在保存对象后立即调用它。
你能给我一些提示吗? The Getting Started guide 像我尝试的那样使用它。
我假设你是这样打电话给 "send-free"
...
Channel('send-free').send({'message': 'your message'})
那么 send_free
没有 message.reply_channel
...
换句话说,一旦 WebSocket packet is sent to us by a client
消息从中获取 reply_channel
属性。这将用于将消息回复给客户端...(可能到前端)
那么你真的要发送消息...?然后再次使用消费者发送...
我一直在努力了解 Django 的渠道,但我无法将消息发送到我的 websocket。
这是我的consumers.py
import logging
from django.contrib.sites.models import Site
from django.utils import timezone
from channels import Group
from .models import *
import json
def send_free(message):
try:
pi = PInformation.objects.get(
pk=message.content.get('pk'),
)
except Parkplatzinformationen.DoesNotExist:
logging.error("PI not found!")
return
try:
message.reply_channel.send({
"text": 1,
})
except:
logging.exception('Problem sending %s' % (pi.name))
我的routing.py
from channels.routing import route
from RESTAPI.consumers import send_free
channel_routing = [
route('send-free',send_free),
]
我收到错误 AttributeError: 'NoneType' object has no attribute 'send'
。但是它确实获得了 PInformation 对象,因此它确实可以工作 "bit"。我在保存对象后立即调用它。
你能给我一些提示吗? The Getting Started guide 像我尝试的那样使用它。
我假设你是这样打电话给 "send-free"
...
Channel('send-free').send({'message': 'your message'})
那么 send_free
没有 message.reply_channel
...
换句话说,一旦 WebSocket packet is sent to us by a client
消息从中获取 reply_channel
属性。这将用于将消息回复给客户端...(可能到前端)
那么你真的要发送消息...?然后再次使用消费者发送...