统一小规模的web项目中的通信流?

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

我有一个项目,包含这些组件。

  • 2个客户端(SPA)
  • 一个后台服务器,使用Django框架。
  • 使用Django Rest框架构建的REST API。
  • 一个额外的nodeJS websocket服务器(处理浏览器和我的SPA之间的全双工通信)。
  • 一个使用Celery的分布式任务工具,Redis作为消息中介。

而这个工作,但你不觉得我使用了太多不同的工具,基本上只是为了从一个组件向另一个组件发送数据吗?我想尽可能地简化它,通过去除协议,技术等。

这篇关于JSON-Pure的文章 是对我的一个启示.基本上,它包括在单个端点上构建一个RPC API,只使用JSON消息,以及任何传输层(它可以通过HTTPs同步运行,或者例如通过websocket异步运行)。
顺便说一下,我绝对不是REST的粉丝,说实话我的API根本不是RESTful,看起来更像是RPC调用)。

所以,如果我错了,请纠正我,但理论上,我可以。

  • 摆脱我的情结 通过HTTPs+websocket的REST API来获取其他消息。 架构。
  • 改为 通过websocket发送JSON消息 对于所有用例。

假设我有充足的时间,而且绝对想做,不管迁移成本如何。那我该如何做呢?

疑问

  • 我可以保留Django吗?现在,Django可以和ASGI异步运行,也许有什么聪明的做法。
  • 我可以保留DRF吗?我觉得这里就没有意义了,因为我想摆脱RESTful的东西+同步的东西。所以我想我需要找一个JSON-Pure Python的实现,我可以在我的Django项目中使用它来重写我的API。
  • 那像这样的工具呢?ZeroMQ? 这样的工具对抽象通信层有什么帮助吗?


  • 我真的需要一个额外的消息代理吗?

对不起,我可能在这里混合了很多不同的概念和问题。 
我只是想了解我应该如何思考,以进入更统一的通信到我的项目.谢谢。

django rest websocket django-rest-framework zeromq
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.