我们使用JavaScript在数小时内构建了一个视频会议应用程序

2020-09-04 14:20:07

快速总结:在本文中,Aydan Kirk将告诉您各种商业和开源视频会议解决方案的优缺点,以及构建您自己的视频会议解决方案的逐步说明。到最后,您将拥有自己的功能齐全的视频会议应用程序,您可以根据需要进行定制和品牌推广。

大流行使我们所有人都搬到室内,我们也不例外。随着我们过渡到远程工作,视频会议已成为我们日常工作不可或缺的一部分。

当一切正常时,我们使用了一些流行的会议应用程序,如Zoom、Google Meet、Microsoft Teams和WebEx。但是,随着我们在日常工作中越来越依赖视频会议,开始出现这些工具无法满足的自定义需求,这迫使我们寻找选项来构建自己的会议解决方案,该解决方案可以与我们的网站、CRM和员工管理系统集成。

这篇文章描述了我们是如何经历了各种商业和开源的选择&以及我们如何创建了我们自己的视频会议解决方案,结果证明它比任何其他解决方案都要好得多。

我们首先评估了一些比较流行的选择,如Zoom、Google Meet、Webex等,以满足我们的需求。ZOOM似乎是自然而然的选择,因为许多员工已经熟悉了它。然而,事实证明,Zoom不提供超过两名参与者的高清通话。这是来自Zoom网站的。

目前,当3名或更多参与者加入小组会议时,将激活标准视频,而不是高清视频。将为2名参与者激活高清视频(720p)…。。

也有一些安全方面的担忧。ZOOM也很贵,我们无法将其与我们的网站集成。我们只需要一些同样好或更好的东西,并与我们的系统更紧密地集成。

微软团队似乎是受欢迎的选择之一。但是,它与Office365紧密集成。因此,我们不太热衷于使用它,因为我们没有使用大量的微软企业工具。我们还尝试了Google Meet、Cisco Webex和其他解决方案,这些解决方案在我们的要求方面没有完全满足我们的期望。

由于流行的选择不符合我们的要求,我们开始探索开源替代方案。这就是我们花了一个多月时间部署和尝试各种开源解决方案的地方。最受欢迎的是Jitsi,结果是CPU占用量很大,无法承受负载,尤其是高清通话。我们觉得Jitsi有很多功能,但是架构的选择让它变得笨重和复杂。我们还观察了库伦托。然而,在被Twilio收购后,它不再积极开发,因此被排除在外。我们考虑的另一个开源选择是Janus,我们(以及他们Google组中的许多用户)发现它有缺陷、崩溃和不稳定。

在上述所有选择中,吉西原来是最稳定的。虽然无法处理高负载,特别是高清通话是一个大问题,但我们几乎决定顺其自然,直到我们收到mesibo的电子邮件邀请,尝试他们新的开源会议应用程序。这完全改变了航向。

我们尝试了他们的开源视频会议演示,大部分内容都相当令人印象深刻-一些有趣的功能,如无限制的高清通话、多屏幕共享、通话检测等吸引了我们的眼球。有一些粗糙的UI边缘,但作为一个开源应用程序,我们可以解决这个问题。虽然它是一个新的平台,但它来自Mesibo是一个很大的保证。我们已经在为我们的客户使用mesibo聊天API。这是一个熟悉的领域,而且开源视频会议API很容易使用。在花了几个月的时间评估其他选择并为之苦苦挣扎后,我们突然发现自己走进了蛋糕里。

因为我们想要的一切都在演示中,所以所需要的只是从GitHub下载源代码,部署并尝试,然后修改它以适应我们的网站。

本节介绍了创建您自己的会议应用程序的整个过程,您可以按照此流程创建自己的会议应用程序。在我们进一步讨论之前,我们建议您先试用Mesibo会议应用程序,这样您就知道自己在做什么了。以下是演示中的一些屏幕截图。

您将看到两个文件夹。打开Live-Demo文件夹。您可以在这里找到会议应用程序的完整源代码-用于后端和前端。

会议应用程序需要一个数据库来存储所有用户、会议室和参与者。后端代码附带一个SQL文件,如果您愿意,可以使用该文件创建数据库或使用任何现有数据库。

数据库模式位于SQL文件mysql-schema.sql中。运行以下命令为后端创建数据库模式。

下一步是设置REST API,前端将使用这些API进行登录、设置会议室、参与者加入会议等。REST API代码位于您需要托管在Web服务器上的后端文件夹中。如果您不熟悉托管Web服务器,请参考在线提供的任何优秀教程,其中包含有关托管Web服务器后端的分步说明。

在您可以使用REST API之前,您需要配置以下内容:

Mesibo App Token-由于会议应用使用Mesibo API,您需要注册Mesibo并获得App Token。您可以在此处注册-https://mesibo.com/console.。注册并登录后,创建一个应用程序,该应用程序将为您提供mesibo应用程序令牌。如果您需要帮助,请参阅此处的教程。

现在编辑config.php并输入您的数据库凭证&;mesibo app令牌。如果您计划使用验证码,您还需要获取Google验证码密钥并在此处进行配置。

<;?php$db_host=“dbhost”;$db_name=“confdemo”;//要连接到$db_user=“confuser”的数据库名称;//要与$db_pass=“confpass”连接的用户名;//用户密码//通过在mesibo.com$APPTOKEN=“<;从https://mesibo.com/console&>获取您的密码”获得;//Google reCAPTCHA密码[可选]$captcha。

一旦REST API处于活动状态,您需要设置前端,以便它可以访问REST API。

前端很容易理解-它是用HTML、JavaScript和AngularJS编写的。这两个版本都有:台式机和移动版。最有可能的情况是,对于任何自定义、品牌等,这是您唯一需要更改的代码。

上线前,编辑web/mesibo/config.js并设置上一步设置的REST API URL:

就这样!。您刚刚创建了自己的会议应用程序!将其托管在您的Web服务器上,然后从浏览器打开index.html。

没有限制性许可或独家品牌限制。我们修改了index.html和login.html文件的某些部分,并使用我们自己的公司颜色、横幅和徽标。我们还删除了基于电子邮件的登录身份验证,并将其替换为我们公司的用户ID。

我们对我们构建和部署的解决方案非常满意。我们遇到的一个问题是没有可用的本地移动应用程序。我们还联系了mesibo,我们被告知Android和iOS原生API即将发布。不过,我们已经开始用mesibo JavaScript SDK和Reaction Native开发一款混合应用程序,计划部署在Android&;iOS上。在接下来的帖子中会有更多关于这方面的信息。

到目前为止,一切都运行得很顺利。但是,从长远来看,我们将拭目以待。我们很快就会写一篇后续文章,更新用法,并对我们正在开发的功能进行更详细的细分。