移动设备上的Django实时访问

移动设备上的Django实时访问,django,django-rest-framework,Django,Django Rest Framework,我是新的网络后端。目前我使用的是DjangoREST框架,它符合我的期望,只是它不帮助实时通信。我不想用firebase。换句话说,我想建立我自己的后端像firebase不是所有的功能,但至少在移动设备上实时访问。最近我发现了Django频道,正如我所提到的,我没有服务器端开发的背景,所以对此我不太了解 我只是想问一下,通过Django频道在移动设备上是否可以进行Django实时访问? 我可以在Django频道中执行类似于DjangoREST的GET、PUT、POST和DELETE操作吗 如果你

我是新的网络后端。目前我使用的是DjangoREST框架,它符合我的期望,只是它不帮助实时通信。我不想用firebase。换句话说,我想建立我自己的后端像firebase不是所有的功能,但至少在移动设备上实时访问。最近我发现了Django频道,正如我所提到的,我没有服务器端开发的背景,所以对此我不太了解

我只是想问一下,通过Django频道在移动设备上是否可以进行Django实时访问?
我可以在Django频道中执行类似于DjangoREST的GET、PUT、POST和DELETE操作吗

如果你想使用django,那么你没有太多选择。在我看来,
django频道
是最好的解决方案
django频道
用于处理网络聊天、聊天和实时连接:

Django Channel是一个项目,它利用Django并将其功能扩展到HTTP之外,以处理WebSocket、聊天协议、物联网协议等。它基于一个名为ASGI的Python规范构建

您的API设计不会有那么大的不同。当然,您必须使用其他工具,而且您将没有
django rest框架
提供的一些选项。但这是一个很好的图书馆,可以处理你的情况

关于你的问题,是的,你可以随时随地处理它。几乎所有的浏览器都支持websocket,几乎所有的移动编程语言都在设计上支持websocket。(请在此链接中阅读有关当前应用程序中的通信方法的更多信息:

当然,您将失去django rest中的一些功能,如serialziers,您将拥有不同的路由器和…而且您只需要使用websocket通过消息发送数据,而不需要http方法。因为这是另一个协议(您可以通过在其api调用之前的
ws://
注意到它)

但请记住,在
django频道中,您会遇到一些挑战,例如:

  • 您需要一个asgi web服务器来处理对django服务器(如daphne)的请求,这是不同的,您应该学习如何配置它

  • 你没有序列化程序之类的东西,你应该验证你的输入(顺便说一句,django有一个库
    channels api
    ,它提供了类似于
    django rest的功能,我没有测试它,但是你可以检查它,看看它是如何运行的。)

  • <> L> >P>您的服务器性能将依赖于RAM来进行Web套接字通信。因为打开的每个套接字都会消耗内存,并且增加的用户数量会导致性能问题。还要注意,Django信道不能处理像1M请求那样的范围,并且您应该考虑MQTT之类的其他协议,如YO设计更轻。你的项目就是这样的规模