gpt4 book ai didi

移动设备上的Django实时访问

转载 作者:行者123 更新时间:2023-12-02 03:25:16 26 4
gpt4 key购买 nike

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

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

最佳答案

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

Django Channels is a project that takes Django and extends its abilities beyond HTTP - to handle WebSockets, chat protocols, IoT protocols, and more. It’s built on a Python specification called ASGI.

您的 API 设计不会有太大不同。当然,您必须使用其他工具,并且您将无法使用 django-rest-framework 为您提供的一些选项。但这是一个很好的库,可以处理您的情况。

关于您的问题,是的,可以在您想要的任何地方处理它。几乎所有浏览器都支持 websocket,并且几乎所有移动编程语言都在设计上支持 web socket。 (在此链接中了解有关当前应用程序中的通信方法的更多信息:web-api-design-methods

当然,你会失去 django Rest 中的一些功能,例如串行器,并且你将拥有不同的路由器......此外,你只需要使用 websocket 通过消息发送数据,而不需要 http 方法。因为它是花药协议(protocol)(您可以通过 api 调用前面的 ws:// 注意到它)

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

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

  • 您没有序列化器和类似的东西,您应该验证您的输入(顺便说一下,django 有一个库 channels-api ,它提供类似 的功能django-rest,我没有测试它,但你可以检查它并看看它是如何进行的。)

  • 您的服务器性能将取决于用于 Web 套接字通信的 RAM。因为每个打开的套接字都会消耗内存,并且用户数量的增加会导致性能问题。另请注意,django-channels 无法处理像 1M 请求这样的范围,如果您的项目处于该规模,您应该考虑其他协议(protocol)(例如 mqtt),这些协议(protocol)在设计上更轻量。

关于移动设备上的Django实时访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53606514/

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