Easy Django REST框架Websocket使用

时间:2018-01-11 22:21:25

标签: angularjs django websocket

我有一个应用程序,它使用Angular作为前端,并与运行Django RF的API进行通信。

现在,让我试着概述一下我希望找到一个简单解决方案的目标。

当用户运行报告时,API的工作版本会生成报告以防止主API陷入困境。该报告运行了几秒钟/分钟。用户刷新页面,瞧,他们的报告就在那里。

我想要实现的是消除整个"用户刷新页面"这个过程的一部分。

我的目标是通过websockets进行此操作。

我真的想要一些简单的东西:

  • WEB:"嘿API,我想要这份报告。我等了。"
  • API:"哟狗,你完成报告。"
  • WEB:"酷,让我刷新我的报告列表。谢谢你。"

现在,我们开始冒险进入一个我不熟悉的领域。 Websockets可以做到这一点,对吧?我只需要创建一个连接并等待工作人员发送all-clear。

现在,这里变得毛茸茸。

我花了大部分时间通过图书馆而且无法找到我需要的东西。我最接近的是this,但它与restframework冲突。我遇到了大量的404错误,我认为这与rf管理网址的方式有关。

我确实需要一个简单的事件监听器。必须有更好的方法,对吧?为了澄清,我不想做一些蛮力的事情,比如默默地ping API报告状态。这有点怪。我希望API告诉我什么时候准备就绪。

1 个答案:

答案 0 :(得分:0)

以基本方式,可以使用django-websocket-redis之类的东西,并使用Django信号传递消息。 ws4redis处理了很多棘手的问题。然而,websockets很奇怪,说实话,我怀疑你需要它们。您可以只轮询一些具有作业状态的路径。如果你需要快速完成它,我会走那条路。