gpt4 book ai didi

javascript - 当 Flask 数据库更改而不进行轮询时更新所有客户端的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-01 03:17:04 24 4
gpt4 key购买 nike

目前,我有一个 Flask 服务器,它运行一个小型 Web 前端以及该服务器的命令行界面。基本思想如下:

<Top section: allows file upload>
* list of files from database

<Second section: allows file manipulation/ upload>
* list of files from database

<Third section: Not files, but still allows for database changes>
* list of things made from database

现在这在前端工作得很好,但目前如果 CLI 或另一个客户端对数据库进行更改,它不会更新其他客户端。我让它在某种程度上与 JS 轮询和每 10 秒重写文件列表一起工作,但这看起来效率很低,而且如果我必须为每个部分都这样做的话,也会看起来很困惑。我在各个论坛上看到了 websockets,但我从未使用过它们,并且不确定添加它们是否会很痛苦。我并不想为了一个功能而重写整个事情。

最终要点:如何比轮询更好地更新所有客户端/如何有效地进行轮询?

最佳答案

是的,你是对的。您需要sockets 。互联网上有很多文章,但我想给出一个摘要并尝试解释为什么套接字最适合您的要求。

套接字是在客户端和服务器之间实现双向通信而无需轮询的方式。

有一个名为 Flask-SocketIO 的包

Flask-SocketIO gives Flask applications access to low latency bi-directional communications between the clients and the server.

然后,对于当一个客户端对您的数据库执行某些操作或类似操作时您希望将更改发送到所有连接的客户端的情况,您将需要使用广播。当启用广播选项发送消息时,连接到命名空间的所有客户端都会收到该消息,包括发送者。 Here您可以使用 Flask-SocketIO 找到广播的详细信息。

关于javascript - 当 Flask 数据库更改而不进行轮询时更新所有客户端的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45486960/

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