2017-04-13 55 views
0

我想实现Django的渠道,因为我需要让用户当另一个用户做了接收通知,而我完全被这部分困惑:使用渠道Django频道是否像WSGI应用一样按预期工作?

部署应用程序需要几更多的步骤比正常的Django WSGI应用程序的 更多,但是您有几个选择 如何部署它以及您希望通过通道层路由 的多少流量。首先,请记住,它是Django的一个完全可选的组成部分。如果 您使用默认设置(没有CHANNEL_LAYERS), 离开项目,它将运行并像一个正常的WSGI应用程序一样工作。

问题是我在共享主机上的权限非常有限,因此我无法使用runworker命令。

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

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

+0

我想这只是一个剩余的文件,当时渠道仍然是要包含在Django核心中。这部分[尚未更新](https://github.com/django/channels/commits/master/docs/deploying.rst),因为该决定已更改。在这种情况下,它变得更有意义。如果你不使用新的设置,我认为你不能使用频道功能。 – knbk

回答

1

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

“”“只有在运行协议服务器和工作服务器时,内存层才有用一个进程;最常见的情况是runserver,其中服务器线程,这个通道层和工作线程在同一个python进程内共存。“”“” 因此,通过避免第三方后端,内存asgi层,并运行“runserver”,并设置通道层。只需在链接中查找内存中的子主题

如果您将CHANNEL_LAYERS作为wsgi应用程序保留为空,但我们需要的是asgi应用程序,并且asgi是频道需要的。