我有一个项目,包含这些组件。
- 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? 这样的工具对抽象通信层有什么帮助吗?
- 我真的需要一个额外的消息代理吗?
对不起,我可能在这里混合了很多不同的概念和问题。
我只是想了解我应该如何思考,以进入更统一的通信到我的项目.谢谢。