繁体   English   中英

如何使用Django WebSockets发送实时数据?

[英]How can I send real-time data using Django WebSockets?

我想使用Django WebSockets从外部API发送实时数据。 我对HTTP的看法是这样的:

@permission_classes([GetPermission])
class DataList(GenericAPIView):

    serializer_class = ObjectSerializer

    def get(self, request):
        parameter = self.request.query_params.get('parameter', None)
        queryset = ExternalAPI().get(parameter, "RSQA")
        id = Object.objects.get(parameter=parameter).id
        queryset["id"] = id
        return Response(queryset)

我想使用WebSockets而不是HTTP来不断发送数据。 这是一个好的解决方案,可以不要求发送它吗? 我想知道应该怎么做? 如果将示例显示在GenericAPIView上,我将不胜感激。

Django本质上是同步的,因此就其本身而言/不可能实现Web套接字。 但是django的核心开发者之一(我相信它的Andrew Goodwin,如果错了,请纠正我!)为此目的开发了渠道 虽然Channels应该是django的一部分,但现在是django项目,但与框架分离。 频道刚推出时,我曾经尝试过频道。 尽管您应该了解我引用的哲学,但它还是不错的小东西。

通道经过精心设计,比保证的传递更喜欢低延迟(目标是几毫秒)和高吞吐量,这与某些消息队列设计不匹配。

某些功能(如消息的有保证的排序)会在选择时加入,因为它们会导致性能下降,但会使消息队列更多。

如果这听起来不像您想要的,请选择django-websocket-redis之类的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM