Для трансляции вам нужно составить группы. См. Здесь .
HTTP-сервер состоит из синхронного кода.Таким образом, вам понадобится код, похожий на этот, который отправляет сообщения в группу, но синхронно, используя async_to_sync
:
from asgiref.sync import async_to_sync
from channels.layers import get_channel_layer
channel_layer = get_channel_layer()
def send_to_group_sync(group_name, data):
async_to_sync(channel_layer.group_send)(group_name, data)
, который вы можете запустить в своем коде синхронизации (например, в вашемвзгляды) как это:
def index(request):
send_to_group_sync('a_group', {
'type': 'method_name',
'message': 'to send',
'another message': 2,
})
return render(request, 'some_folder/index.html')