Django频道是否像WSGI应用程序一样工作?

时间:2017-04-13 16:03:01

标签: django django-channels

我正在尝试实现Django频道,因为我需要让用户在其他用户做某事时收到通知,而我对此部分感到困惑:

http://channels.readthedocs.io/en/stable/deploying.html

  

使用渠道部署应用程序需要比a更多的步骤   正常的Django WSGI应用程序,但你有几个选项   如何部署它以及您希望路由的流量   通过渠道层。

     

首先,请记住它是Django的完全可选部分。如果   你留下一个默认设置的项目(没有CHANNEL_LAYERS),   它只是像普通的WSGI应用程序一样运行和工作。

问题是我对使用的共享主机拥有相当有限的权限,因此,我无法使用runworker命令。

上面的引用说这部分是“可选的”,如果没有它,它将像普通的WSGI应用程序一样工作。但是我可以将Django频道与普通的WSGI应用程序一起使用吗?如果没有,那么这是不是意味着它根本不是可选的?

所以我的问题是:如果我跳过这一部分,频道是否仍然有用,我是否能够使用此页面上显示的内容(路由,发送消息等):http://channels.readthedocs.io/en/stable/getting-started.html

1 个答案:

答案 0 :(得分:2)

从阅读文档,我得到的是,首先你需要使用后端来运行频道,例如。 redis,Sharding和run" runworker",但由于它不适合你,请看看http://channels.readthedocs.io/en/stable/backends.html

"""内存层仅在单个进程中运行协议服务器和工作服务器时才有用。最常见的情况是runserver,其中服务器线程,此通道层和工作线程都在同一个python进程内共存。""" 因此,通过避免第三方后端,您可以使用内存中的asgi图层,然后运行“运行服务器”#39;并设置通道层。只需在链接

中查找内存中的子主题

如果你保持CHANNEL_LAYERS空django' ll可以作为wsgi应用程序工作,但我们需要的是asgi应用程序,并且asgi是渠道所必需的。