お世話になります。
質問は表題の通り、views.pyから特定ルームへメッセージを送信する方法です。
昨日からchannelsを触りはじめたため、ドキュメントもどこを読めばいいのかよくわかりません。
チュートリアルは終えたため基本的なところはできます。
試したコード
Python
1# consumer.py 2class ChatConsumer(WebsocketConsumer): 3 • 4 • 5 • 6 def receive_view(self, roomname): 7 # Send message to room group 8 async_to_sync(self.channel_layer.group_send)( 9 roomname, 10 { 11 'type': 'chat_message', 12 'message': “template message” 13 } 14 ) 15 def send_temp_message(self, event): 16 message = event['message'] 17 self.send(text_data=json.dumps({ 18 'message': message 19 })) 20
Python
1# views.py 2from .consumer import ChatConsumer 3 • 4 • 5 • 6ChatConsumer.recieve(roomname)
shell
1Internal Server Error: /chat/send/test 2Traceback (most recent call last): 3 File "/usr/local/lib/python3.8/dist-packages/asgiref/sync.py", line 339, in thread_handler 4 raise exc_info[1] 5 File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/exception.py", line 38, in inner 6 response = await get_response(request) 7 File "/usr/local/lib/python3.8/dist-packages/django/core/handlers/base.py", line 233, in _get_response_async 8 response = await wrapped_callback(request, *callback_args, **callback_kwargs) 9 File "/usr/local/lib/python3.8/dist-packages/asgiref/sync.py", line 304, in __call__ 10 ret = await asyncio.wait_for(future, timeout=None) 11 File "/usr/lib/python3.8/asyncio/tasks.py", line 455, in wait_for 12 return await fut 13 File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run 14 result = self.fn(*self.args, **self.kwargs) 15 File "/usr/local/lib/python3.8/dist-packages/asgiref/sync.py", line 343, in thread_handler 16 return func(*args, **kwargs) 17 File "/channels-test/mysite/chat/views.py", line 15, in send 18 ChatConsumer.send_notification()
どなたか詳しい方、回答よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー