gpt4 book ai didi

rpc - 后端-前端双向通信

转载 作者:行者123 更新时间:2023-12-02 22:10:24 24 4
gpt4 key购买 nike

我们目前有一个 django 应用程序通过 Apache 为用户提供我们的前端网站。前端查询我们的后端,这是一个单独的 Python 应用程序 (Flask),服务于不同的服务器。到目前为止,一直要求前端向后端查询数据,而不是相反。

我们现在引入了数据警报,用户可以选择接收有关系统中数据更改的数据警报。检查警报是否发生的过程必须在后端发生,因为它与数据模型紧密耦合。因此,前端发送请求在后端添加警报,然后后端将轮询并检查是否发生了触发。

问题是,一旦在后端触发警报,前端就需要得到通知,以便用户也能收到通知。后端无法直接提醒用户,因为它不知道电子邮件等用户数据(此用户数据可能会更改,因此将其与添加警报的请求一起发送到后端过于简单)。

因此,我们正在寻找将警报通知从后端推送到前端的最佳方式。我们这样做的最佳方法是什么?我们可以在后端可以查询的 django 应用程序上设置一个 View ,但我不喜欢前端查询后端的想法,反之亦然。实现这一目标的最佳选择是什么?

最佳答案

有关一些可用方法的概述:What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet? .

由于您需要能够在不让客户端不断轮询的情况下将更新传达给前端,听起来您需要设置网络套接字或服务器发送的事件,并且对于遗留系统长轮询或其他方法(也许尝试如果需要扩展这些东西,可以使用像 pusher.io 这样的服务)。关于将这些项目集成到 Flask 或 Django 设置中,有许多很棒的教程。这里有一些很棒的教程:http://blog.jupo.org/2011/08/13/real-time-web-apps-with-django-and-websockets/http://dev.hasenj.org/post/38188152502 .

为了启动和运行最小的解决方案,我建议看一下 socket.io ( http://socket.io/ ),然后使用 python 库 ( Socket.IO Client Library in Python )。

如果您需要身份验证,当用户登录时,让前端发送一个新的 websockets channel 名称请求,然后保持该 channel 打开,直到他们注销或他们的 cookie 过期。使用此 channel 向用户发送更新。

关于rpc - 后端-前端双向通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15398608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com