在创建移动应用程序时将django-channels与django-rest-framework一起使用

时间:2018-08-01 02:54:26

标签: ios django django-rest-framework django-channels django-oscar

我已经有一个用Django写的项目,并且能够很好地使用django rest框架。该项目实际上基于django-oscar,我实现了其他一些功能。我现在正在使用此应用程序的移动版本,正在需要像Sockets这样的实时服务器更新,并且我知道djnago频道。我现在的问题是,是否可以将django-rest框架与django-channels链接,因为例如,如果用户在移动应用上进行购买,则可用产品的数量应实时减少,或者如果用户添加了用推车购物的产品,用户应该能够立即收到带有通知徽章的商品,我认为这可以通过Django渠道来实现。那么我该如何将其余API与Django频道联系起来

1 个答案:

答案 0 :(得分:0)

URLRouter([
    url(r"^longpoll/$", LongPollConsumer),
    url(r"^notifications/(?P<stream>\w+)/$", LongPollConsumer),
    url(r"", AsgiHandler),
])

如果未提供http参数,它将默认为Django视图系统的ASGI接口channels.http.AsgiHandler,这意味着对于大多数未执行自定义长轮询HTTP处理的项目,您根本无法指定一个http选项,并使其以“常规” Django方式工作。

如果要在长轮询处理程序和Django视图之间拆分HTTP处理,请使用URLRouter,将channel.http.AsgiHandler指定为具有所有内容匹配模式的最后一个条目。

以上内容来自https://channels.readthedocs.io/en/latest/topics/routing.html#protocoltyperouter