我为什么选择采用node.js来做新一代的EasyDarwin RTSP开源流媒体服务器

在去年我们还未开始开发基于node.js的新版本EasyDarwin RTSP开源流媒体服务器的时候,我写了一篇博客《对EasyDarwin开源项目后续发展的思考:站在巨人的肩膀上再跳上另一个更高的肩膀》,思考了为什么要基于node.js来做像RTSP、SIP、GB28181这种信令协议的流媒体服务器,现在新版本的EasyDarwin(based on node.js)已经全线替换了原来基于Apple的Darwin Streaming Server的流媒体服务器版本,体验及效果非常好,而且相较于之前的C++版本,新版本极大地降低了开发门槛,很多开发者都踊跃加入了进来!

总结与思考


EasyDarwin是从安防行业发展过来的,经过多年的发展,还是有非常强的安防属性在里面,我一直在思考EasyDarwin的发展定位,首先,我们要做的是Easy,如何Easy,一方面是使用者要Easy,非常Easy进行编译、部署和运行,另一方面,如何二次开发Easy:

  • 使用Easy:这个就要靠完善的使用文档、视频教程、简易的部署向导来实现了,这个相信是在现有架构基础上可以再继续优化的;

  • 二次开发Easy:这个就费劲了,现在的情况是一个企业要找那么一两个会C++的开发,已经非常困难了,要对EasyDarwin做一点点的功能扩展,难于登天!当然,这不仅仅是EasyDarwin是这样的,国内、国外很多其他类型的开源项目都面临了这个问题,使用方便,但查问题、改问题就找不到人手了;

还有一个问题,就是现在大部分的流媒体服务器没有非常好的后台和权限管理功能,而这个又跟具体流媒体服务器是无关的,所以,做上吧,怕是鸡肋,不做吧,感觉很深奥,入门困难;


以上都是之前的思考,现在看来,都是比较有前瞻性的:

  1. RTSP、SIP、GB28181这种文本类型的通信协议,是非常适合于js这种语言进行解析和处理的;
  2. 前端与后端的结合更加方便了,实际上,我们在开发流媒体系统比较多了之后就会发现,大部分的流媒体系统,其实核心底层的东西并不多,大部分都还是上层的业务逻辑的控制,这种情况下,采用js、Python、golang这些语言都能很快搞定业务逻辑,比C++来开发效率要高多了;
  3. 再也不用担心底层性能和稳定性的问题了,都是站在巨人的肩膀上,只要安心做逻辑就好了;

后续我们会继续按照之前的思路往前推进:

  1. 使用类似于node.js框架进行网络I/O;

  2. 使用C++编写node插件进行流媒体关于复杂计算类型的功能;

  3. 使用node.js后端语言进行管理页面和权限控制的开发;

优势:

  • 即使EasyDarwin上层的逻辑开发停滞了,但是node.js体系还在推进,也就是说EasyDarwin的底层还是在不断优化和发展的;

  • 不再仅仅是C++的开发才能参与到项目的开发了,各种前端、后端的开发都能加入进来了,开发群体和开发门槛大大改观;

  • node.js配套组件非常多,很多接口化、管理化、数据库相关的操作,都不用再经过底层C++了,上层直接就搞定了,底层只需要关注核心流媒体部分的功能!

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2017

EasyDarwin

posted @ 2018-06-11 19:35  Babosa|EasyDarwin  阅读(1596)  评论(0编辑  收藏  举报