Commit 7d680efc by 周田

refactor:重构 websocket 发送消息相关代码

parent 623cd6a0
......@@ -4,6 +4,8 @@ import json
from asgiref.sync import async_to_sync
from channels.generic.websocket import WebsocketConsumer
from channels.generic.websocket import AsyncWebsocketConsumer
from channels.layers import get_channel_layer
from asgiref.sync import async_to_sync
# sync code
......@@ -79,3 +81,9 @@ class ChatConsumer(AsyncWebsocketConsumer):
# await self.send(bytes_data=message)
def send_websocket_message(message, group_name="chat_mqtt"):
channel_layer = get_channel_layer()
async_to_sync(channel_layer.group_send)(
group_name,
{"type": "chat.message", "message": message}
)
import paho.mqtt.client as mqtt
from django.conf import settings
from .utils import parse_proto
from chat.consumers import send_websocket_message
# *******************************************************
from channels.layers import get_channel_layer, channel_layers
from asgiref.sync import async_to_sync
def send_websocket_message(message, group_name="chat_mqtt"):
channel_layer = get_channel_layer()
async_to_sync(channel_layer.group_send)(
group_name,
{"type": "chat.message", "message": message}
)
# *******************************************************
def on_connect(mqtt_client, userdata, flags, rc):
if rc == 0:
print('Connected successfully')
......@@ -33,6 +21,13 @@ def on_message(mqtt_client, userdata, msg):
data = parse_proto(msg.payload)
# data = msg.payload.decode('utf-8')
print(f'Received message on topic: {msg.topic} with payload: {data}')
send_message(data)
def send_message(data: dict):
"""
发送 websocket 消息
"""
send_websocket_message(data)
if data['CMDS'][0] == '$':
send_websocket_message(data, group_name="chat_acu7m5")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment