将我的django模型中的更改发送到客户端服务



最近我收到了一份关于我工作的公司的需求。他们希望我使用django构建一个API,为聊天机器人客户端提供支持。基本上它应该是这样工作的:API接收包含message_receivermessage_body的JSON对象,并将其发送到聊天机器人客户端,聊天机器人客户端将处理所有";消息发送";东西太棒了在做了一些研究后,我决定不采用客户端定期ping服务器以搜索要发送的新消息的逻辑,而是采用相反的逻辑,即每当服务器接收到消息时,它都会自动为客户端发出一个事件,告诉他发送消息。

为此,我偶然发现了一些有趣的工具,比如socket.iodjango channels。我特别喜欢socket.io。所以在弄脏我的手之前,我画了所有的过程,遇到了一个问题,我在互联网上找不到一个直接的答案,我研究的大多数教程都集中在展示通信客户端服务器是如何工作的,但我找不到能清楚地告诉我如何在django应用程序-服务器之间进行通信的教程,所以我的问题是…

有没有可能制定一个逻辑,每当我的django模型被保存时,我都会发出一个signal,它将触发event并使通信服务器-->客户端通过websocket使用socket.io

如果您有使用django-channels的解决方案,非常欢迎!

谢谢大家!如果需要任何额外的信息,我会在这里。

您可以通过模型中的信号来实现这一点。在模型下定义此函数

@receiver(post_save, sender=MyModel)
def my_handler(sender, instance, created, *args, **kwargs):
...
if instance.is_approved:
mail.send_mail(...)

相关内容

  • 没有找到相关文章

最新更新