现在我正在使用 django 和 Angular 构建一个网站,并且我想在客户端和服务器之间添加 websocket 通信。我按照 django 通道文档的说明进行操作。(https://channels.readthedocs.io/)我想从 django 服务器代码的任何位置发送任何事件。但是当多个用户通过套接字连接时,从服务器发送的数据总是发送到最后一个连接的用户。这就是我所做的。首先在consumers.py中,我定义了我的ChatConsumer类,如下所示,并添加了一个名为“tweet_send”函数的新处理程序
class ChatConsumer(AsyncWebsocketConsumer):
async def connect(self):
self.room_name = self.scope['url_route']['kwargs']['room_name']
self.room_group_name = 'chat_%s' % self.room_name
# Join room group
await self.channel_layer.group_add(
self.room_group_name,
self.channel_name
)
await self.accept()
...
# here's what I added a new tweet send handler
async def tweet_send(self, event):
content = event['content']
content["group_name"] = self.room_group_name
# Send message to WebSocket
await self.send(text_data=json.dumps({
"type": "MESSAGE",
"data": content
}))
Run Code Online (Sandbox Code Playgroud)
在 django 服务器端的某个地方(在 serializers.py 中),当创建新推文时,我使用 django.channel_layer 向所有用户发送新推文数据
...
def create(self, …Run Code Online (Sandbox Code Playgroud) 我想在单元格中从上到下写入文本,就像使用 python 中的 openpyxl 包在 EXCEL 中垂直文本方向一样。但我不能那样做。有人可以帮我吗? 我上传了我想要的确切图片