这篇文章记录一下开发「抖直播」软件时遇到的一些技术问题,已经分享一下开发「抖直播」使用到的技术,为了避免没有我朋友圈或没看前面几篇文章的朋友蒙圈,简单介绍一下「抖直播」,它是一款可以监控抖音直播间的软件,说的技术点,就是一个桌面软件,然后对每个你需要监控的直播都启动单独的后台定时任务实现对主播的监控,如果主播录播,就开始录屏功能。
简单的技术总结(主要是变现失败了,所以分享一下也没啥关系 []~( ̄▽ ̄)~* )。
技术栈:NodeJS+Electron+VueJS
定时任务:NodeJS
录屏:FFmpeg
实时直播:XGPlayer-FLV
抖音接口:APP抓包+APP逆向
Electron
Electron是基于Chromeium、Nodejs实现的桌面开发框架,基于Electron,我们可以通过HTML、CSS、JS来构建桌面应用。
Electron基础知识很多,但关键的概念就那几个,如IPC通信、渲染进程等,但如果你使用Electron开发还会遇到很多实际的问题,比如:
问:Electron如何加密保护核心业务代码,避免被轻易逆向?答:使用C++/Rust等编译后的代码 或 将核心代码放到后端服务上通过接口调用,我使用了后端接口这个方案。
问:Electron如何升级应用?答:可以使用Electron自带的update机制,这里我通过接口判断版本号,如果小于最低版本则要求其强制下载最新版本,这种形式比较粗糙,但简单,Electron自带的update机制其实挺复杂的。
问:Electron如何捕获用户端上的Bug?答:因为我前期开发使用了大量的console,所以我通过proxy机制,为console添加到请求后端接口的逻辑,而且实现所有日志的捕获。
此外,单纯使用Electron开发,效率还不太高,这里我选VueJS框架来实现Electron渲染进程中的逻辑,怎么让VueJS与Electron优雅的结合也是个问题。
这里我使用「vue-cli-plugin-electron-builder」手脚架,很多人搜索Vue+Electron会搜到「electron-vue」手脚架,这个手脚架,在19年的时候很多人用,但现在用,可能就是一个坑,因为electron-vue在github上已经很久没有更新了,而vue-cli-plugin-electron-builder还在活跃状态。
一个项目是否活跃,在前端圈,可能更为重要一些,因为前端的工具链变化实在是快,如果一个手脚架,多年未维护,可能就会出现一些问题,而我不想在这些问题上花费精力。
vue-cl