簡體   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