在Django石墨烯订阅中返回有关订阅事件的初始数据

问题描述 投票:1回答:1

我正在尝试响应订阅的用户。例如,在聊天室中,当用户连接到订阅时,订阅将向他发送数据(如欢迎消息),但仅向刚连接的同一用户(不广播)发送回复。

我该怎么做? :(

更新:我们决心使用渠道。 DjangoChannelsGraphqlWs不允许直接回传消息。

websocket graphql subscription django-channels graphene-django
1个回答
0
投票
修改后的publish处理程序可能如下所示:

def publish(self, info, chatroom=None): new_msg_chatroom = self["chatroom"] new_msg_text = self["text"] new_msg_sender = self["sender"] new_msg_is_greetings = self["is_greetings"] # Send greetings message only to the user who caused it. if new_msg_is_greetings: if ( not info.context.user.is_authenticated or new_msg_sender != info.context.user.username ): return OnNewChatMessage.SKIP return OnNewChatMessage( chatroom=chatroom, text=new_msg_text, sender=new_msg_sender )

我没有测试上面的代码,所以可能会有问题,但是我认为它很好地说明了这个想法。

© www.soinside.com 2019 - 2024. All rights reserved.