바뀜

428번째 줄: 428번째 줄:  
|<syntaxhighlight lang="python">
 
|<syntaxhighlight lang="python">
 
from channels.generic.websocket import WebsocketConsumer
 
from channels.generic.websocket import WebsocketConsumer
 +
from asgiref.sync import async_to_sync  # 필요에 따라.
    
class 컨슈머이름(WebsocketConsumer):
 
class 컨슈머이름(WebsocketConsumer):
540번째 줄: 541번째 줄:     
type의 이름이 chat.message 라면 chat_message로 변경되어 처리된다.
 
type의 이름이 chat.message 라면 chat_message로 변경되어 처리된다.
 +
 +
{| class="wikitable"
 +
!데이터 전송 함수
 +
!설명
 +
|-
 +
|self.send()
 +
|웹소켓(자바스크립트)으로 데이터를 보내 창에 띄운다.
 +
|-
 +
|
 +
* async_to_sync(동기식)
 +
* await self.channel_layer.group_send(비동기식)
 +
|다른 유저들에게 보낼 때 사용한다.
 +
|}
 
|<syntaxhighlight lang="python">
 
|<syntaxhighlight lang="python">
 
def receive(self, text_data):
 
def receive(self, text_data):
574번째 줄: 588번째 줄:     
(event가 들어오면 자동으로 실행되는 듯하다.)
 
(event가 들어오면 자동으로 실행되는 듯하다.)
      
웹소켓(자바스크립트)으로 보낼 땐 json으로 변환하여 보내주어야 한다.
 
웹소켓(자바스크립트)으로 보낼 땐 json으로 변환하여 보내주어야 한다.
 
|<syntaxhighlight lang="python">
 
|<syntaxhighlight lang="python">
def chat_message(self, event):
+
def chat_message(self, event): # 변수명으로 event 대신 text를 사용하기도 한다.
 
         message = event['message']
 
         message = event['message']