You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.0 KiB
Python

from channels.generic.websocket import WebsocketConsumer
from .models import *
import json
from django.template.loader import render_to_string
from asgiref.sync import async_to_sync
class OsitcomChatRoom(WebsocketConsumer):
def connect(self):
async_to_sync(self.channel_layer.group_add)(
'ositcom_chat', self.channel_name
)
self.accept()
self.send_template()
def disconnect(self, close_code):
async_to_sync(self.channel_layer.group_discard)(
"ositcom_chat",
self.channel_name
)
def send_template(self):
event = {
'type': 'send_template_handler',
}
async_to_sync(self.channel_layer.group_send)(
'ositcom_chat', event
)
def send_template_handler(self, event):
context = {
}
html = render_to_string("test.html", context=context)
self.send(text_data=json.dumps({
'event_type': 'chat',
'html': html,
}))