0%

Hello,大家好!今天我们继续来分析janus。相信现在大家应该对janus 都比较熟悉了,它是一套完整的音视频会议系统,包括了WebRTC流媒体服务器和客户端API两大部分。

其中,客户端又包括Android、iOS以及浏览器端。今天我们要分析的内容就是浏览器端中的janus.js文件。之所以要分析它,是因为它是浏览器端最关键的一个文件,了解了它我们基本上就将浏览器端的逻辑全部撑握了。

从大的方面说,janus.js主要完成两方面的事儿。一是封装了浏览器与janus流媒体服务器之间的业务接口,使得在浏览器端开发音视频会议系统变得特别简单;二是对WebRTC的API做了封装,这样用户不用再理会WebRTC底层API该何使用了。

总之一句话,就是大大的减了少JS用户使用janus的难度。

阅读全文 »

TypeScript
我们要学习一门新知识,首先要了解一些新知识的历史。TypeScript 是微软开发的,它的出现是为了解决 JavaScript 没有类型检查的弊端。因此,TypeScript并不是一门新语言,它的作用就是帮JavaScript检查数据类型是否正确,所以称它为JavaScript的一个超集是更贴切的。

有很多同学对 TypeScript 产生疑惑,他们会问 TypeScript 可以在浏览器上运行吗?

阅读全文 »

SUF
随着网络基础设施的提高,音视频实时通信越来越成为人们日常生活和工作中必不可少的需求。2011年 WebRTC的出现,则更加速了这种需求变为现实的可能性。

熟悉 WebRTC 的同学应该都知道,WebRTC规范只定义了实时通信中客户端的行为,而没有规范服务端(包括哪些信令、数据如何流转)的行为。所以,你可以使用WebRTC库方便的实现 1:1 实时通信,但对于多人实时互动,光依靠 WebRTC库显然就无法完成要求了。

那我们该如何实现多人实时互动通信呢?

阅读全文 »

javascript

随着浏览器的发展,JS(JavaScript) 越来越受到人们的欢迎。它不再像以前只能做单一的渲染页面这样的事情了,在Chrome等现代浏览器上,你甚至可以用JS来做音视频的处理,是不是觉得很神奇?

不过今天我要讨论的并不是如何使用JS来做一些神奇的事儿,而是来重新认识一下JS中的使用。对于这部分知识的理解,将为我们后面阅读Janus(一款WebRTC流媒体服务器)代码有着至关重要的作用。

阅读全文 »

Markdown时序图

有很多同学觉得用Markdown画图是一个很鸡肋的事儿,一是Markdown画不了太复杂的图,如果图太复杂了估计能把自己绕晕;二是Markdown画不了特别漂亮的图,比如你想通过颜色来区分一些元素的作用Markdown就无能为力了。

我以前也是持有这种态度,所以一直很反对使用Markdown画图。但最近我的思想有所改变,我认为Markdown画图还是有它的优势的。

阅读全文 »

最近几年Go、RUST等新语言不断推陈出新,令人目不暇接。据说Go与RUST开发出的程序性能非常高,但对于我这种C/C++老鸟来说,对此并不感冒,“再快还能比C快?”这句话一直萦绕在我的心头。

但出于好奇,每次听到有人说Go性能多好多好时,难免都会追问一句“有没有与C进行过对比测试?”,这句并不是想“兑”谁,而是想确认一下网上的传言是否为真。

不幸的是,每当我问这句话时,从来没有得到一个明确答复,也搞不清是他们得出的“Go性能好”是道听途说,还是自己真实的测试结果。

近来时间充裕,一时兴起,心想不如做个简单的Go、C/C++、RUST的性能对比测试吧,验证一下Go的性能到底如何。

阅读全文 »

作为技术人员,定期写Blog是一个非常好的习惯。你可以通过它将自己的一些学习心得记录下来,也可以对平常的工作做一些经验总结等等。对于我来说Blog就更为重要了,因为Blog是我推广音视频技术的一块“阵地”,我需要将我写的一些音视频技术知识、视频课程中的问题解答等内容放在它上面,以便同学们交流学习。

阅读全文 »