python打造流媒体服务器_使用Flask搭建一个流媒体服务器

摘要

收到前不久订阅的PythonWeekly发过来的一个邮件通知,由Miguel写的一篇介绍如何使用Flask搭建一个流媒体服务器的文章,思路很新颖也很有意思。你可以点击这里阅读英文原文。或者跟随本文跟我一起体验一把搭建一个流媒体服务器的过程吧。

理论基础

流媒体有两大特点,一是数据量大。二是有实时性要求。针对这两个特点,我们必须把应答数据分块传输给客户端来实现流媒体服务器。这里我们用到了两个关键技术来实现流媒体服务器,我们使用生成器函数来把数据分块传送,Flask的Response类本身对生成器函数有良好的支持。接着,我们使用Multipart来组装一个HTTP应答。

生成器函数

生成器函数是可被打断和恢复的函数。其关键字是yield,来看一个例子:

**def** gen():

**yield** 1

**yield** 2

**yield** 3

上面的代码我们就定义了一个生成器函数,当生成器函数被调用时,它返回一个生成器迭代器,或直接叫生成器。通过不断地调用生成器的next()方法来执行生成器函数体的代码,直到遇到异常为止。

>>>> g = gen()

>>> g

>>> g.next()

1

>>> g.next()

2

>>> g.next()

3

>>> g.next()

Traceback (most recent call last):

File "", line 1, **in**

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值