Django通道向组发送消息

时间:2019-12-07 11:43:36

标签: python django websocket django-channels

我正在编写一个需要使用套接字的应用程序。为了处理它,我使用Django频道,但是我无法广播消息进行分组。

class waiting(WebsocketConsumer): 
    def connect(self): 
        self.channel_layer.group_add( 'my_group_name', self.channel_name )

        if <condition>:
            self.channel_layer.group_send( # This does not give any effect. I'm sure the condition is satisfied.
                'my_group_name',
                {
                    'message' : 'succes'
                }
            )

        self.accept()
        self.send(json.dumps({'message' : 'message'})) # This works perfect

    def disconnect(self, close_code):
        self.channel_layer.group_discard(
            'my_group_name',
            self.channel_name
        )

我有什么问题?我已经阅读了许多教程和文档,但是没有找到任何解决方案。我应该做些什么以使此代码按我的意愿工作?

我正在使用频道== 2.3.1和Django 2.2.6。

1 个答案:

答案 0 :(得分:1)

在广播之前,您实际上并没有接受connect功能中的连接。没有self.accept()的连接将被拒绝并关闭。