Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从场景的角度来看,websocket和flask流有什么区别_Python_Flask_Websocket_Streaming - Fatal编程技术网

Python 从场景的角度来看,websocket和flask流有什么区别

Python 从场景的角度来看,websocket和flask流有什么区别,python,flask,websocket,streaming,Python,Flask,Websocket,Streaming,我正在开发一个BS卡夫卡监控工具。该节目将收听卡夫卡主题,并不断输出该主题的新信息。那么,哪种方法是将这些消息不断发送到浏览器端的最佳方法呢 该程序使用flask,所以目前我使用流_和_上下文将新消息发送到浏览器端。目前这是可行的,但我想知道这是否是将stream_与_上下文一起使用的正确方案,因为大多数情况下用于下载和视频流?或者我应该用websocket @read_controller.route('/v1/listenkafka/',methods=['GET'] def启动_流(卡夫卡

我正在开发一个BS卡夫卡监控工具。该节目将收听卡夫卡主题,并不断输出该主题的新信息。那么,哪种方法是将这些消息不断发送到浏览器端的最佳方法呢

该程序使用flask,所以目前我使用流_和_上下文将新消息发送到浏览器端。目前这是可行的,但我想知道这是否是将stream_与_上下文一起使用的正确方案,因为大多数情况下用于下载和视频流?或者我应该用websocket

@read_controller.route('/v1/listenkafka/',methods=['GET']
def启动_流(卡夫卡迪):
尝试:
mykafka_json=eval(my_storage.get(kafkaId))
mykafka=kafkaserver(ip=mykafka_-json['ip'],id=kafkaId,port=mykafka_-json['port']))
返回响应(带有上下文的流(mykafka.consume_主题(mykafka_json['topic']))
例外情况除外,如e:
打印(f“{e}”)
返回jsonify(f{e}),400
#生成器收听卡夫卡的音乐并将其输入流
def consumer_主题(self、topic、groupid='test-consumer-group'):
消费者=卡夫卡消费者(主题,
组id=组id,
bootstrap_servers=[f“{self.ip}:{self.port}]”)
打印(f“Topic:{Topic}@{self.ip}:{self.port}在{datetime.now()}开始蒸汽化”)
尝试:
对于消费者信息:
mykafka_json=eval(my_storage.get(self.id))
打印(mykafka_json)
如果mykafka_json['flag']:
my_storage.delete(self.id)
返回
其他:
message={'topic':messages.topic,
“分区”:messages.partition,
“偏移”:messages.offset,
“key”:messages.key,
“值”:messages.value}
打印(消息['value'])
产生消息['value']
除了作为e的StopIteration:
#TODO::句柄返回
打印(e)
最后:
打印(f“主题-{Topic}在{datetime.now()}完成”)
那么,在这个场景中,我应该将流_与_上下文一起使用,还是应该切换到使用WebSock

谢谢

好的,现在我明白了

带有上下文的流实际上会在每次前端请求时从开始返回所有内容

因此,它是一种下载工具,而不是不断地将新数据从服务器推送到客户端

最后,我选择了flask socketIO,它比websocket更好,但你需要研究样本以了解它是如何工作的…文档遗漏了一些细节…

好吧,现在我明白了

带有上下文的流实际上会在每次前端请求时从开始返回所有内容

因此,它是一种下载工具,而不是不断地将新数据从服务器推送到客户端

最后,我选择了flask socketIO,它比websocket更好,但您需要研究样本以了解它是如何工作的……文档遗漏了一些细节