创建Web会议软件

时间:2015-09-04 05:01:09

标签: web video-conferencing

我想知道关于可能启动一个项目的两件事,其中一个Web会议平台基本上是从头开始构建的。它需要有一个交互式白板,音频/视频,屏幕共享,聊天,记录会话中发生的内容等等。所以......

1。)这是一个为期一个月的项目吗? 1年?成千上万的$$$?成千上万?

2。)假设这已创建,主持会话涉及什么?他们可以只在主持人的电脑上托管吗?或者是需要服务器?常规宽带连接是否足够或需要T1线路?

此处并未真正寻找具体的解决方案。只是一些一般性的想法和球场数据会很棒。

1 个答案:

答案 0 :(得分:1)

1。估算时间和时间

制作软件很难!!做得对将花费你的钱。是的..几个月。你会想要为每一滴汗水和他们为你工作的每一分钟付出代价,因为开发人员是像你一样努力工作的女人和男人。尤其需要支付初学者费用。他们在估算和努力工作方面做得不好。你可以称之为自我造成的奴隶制,但是很多人都希望它能够得到快速和快速的支持。耍赖。人们需要了解开发人员的工作方式。

解释一下:

每个新的软件项目都涉及很多问题。我们需要非常详细地回答这些问题,以了解每个步骤需要多长时间。

商家

  • 它有什么功能?
  • 每个功能的用例场景是什么?
  • 我希望每小时有多少用户?
  • 预计托管费用是多少?
  • 我是否需要存储数据突变或事件流?
  • 哪些部分是明显的,复杂的,复杂的或混乱的? 看到这个:https://en.wikipedia.org/wiki/Cynefin
  • 我需要雇佣谁以及完成什么任务?
  • 当应用程序准备首次启动时,我该如何销售它?

<强>前端

  • 你的系统如何看起来和感觉?
  • 我们是否在构建基于任务的用户界面?
  • 您打算使用哪种JavaScript框架?
  • 我需要写什么内容?
  • 我是否必须自动化前端开发流程?
  • 浏览器兼容性

<强>后端

  • 我将使用哪种服务器端语言?
  • 我使用什么类型的数据库?
  • 我应该使用什么框架?
  • 我是否需要考虑CQRS和Eventsourcing?
  • 我是否需要一个做得非常好的域模型
  • 我需要什么样的服务器工具?
  • 如何进行持续部署,集成等?
  • 介绍,变更和所有权的成本?
  • 我将使用什么数据库?我们需要更多吗?
  • 我应该使用什么缓存?反向代理?
  • 我将使用哪种网络服务器?
  • 我们会写测试吗? TDD,BDD等?

服务器

  • 网络服务器?
  • 泊坞?
  • VM?
  • OS
  • 数据存储
  • 维护
  • 安全

在确定所有这些东西并加载和加载更多之后,我们然后决定总和的每个部分需要多长时间。我们估计。

然后你可以做两件事:瀑布式或敏捷开发。

在阅读了您想要构建的内容后,我会说您有一个艰难而漫长的项目,其中包含所有部分的深度。如果您没有在包含规格的技术文档中彻底规划整个项目,那么为项目提供固定的价格和时间跨度是不可能的。

这份文件可能会更长,但我希望你能看到我试图提出的观点。

2。只有经过一些研究才能选择技术

-edit-我没有回答第二个问题,因为我上面解释过的事情。出现了大量问题:

  • 您会同时支持多少用户?
  • 当我们知道这一点时,我们将获得硬件规格
  • 我们将支持哪些国家/地区?
  • 某些国家可能需要不同的通信协议
  • 我们是否需要技术支持,安装其他内容,如flashplayer,silverlight,java或者我们有什么?
  • 我们需要什么样的服务器?
  • 我们使用nginx-pushstream还是其他异步工具?

Skype在其网站上有一个关于带宽的列表:

&#13;
&#13;
<table style="width:100%; text-align:left">    <tbody>        <tr>            <th>Call type</th>            <th>Minimum download <br>            / upload speed</th>            <th>Recommended download <br>            / upload speed</th>        </tr>        <tr>            <td class="first-child">Calling</td>            <td>30kbps / 30kbps</td>            <td class="last-child">100kbps / 100kbps</td>        </tr>        <tr>            <td class="first-child">Video calling /<br>            Screen sharing</td>            <td>128kbps / 128kbps</td>            <td class="last-child">300kbps / 300kbps</td>        </tr>        <tr>            <td class="first-child">Video calling <br>            (high-quality)</td>            <td>400kbps / 400kbps</td>            <td class="last-child">500kbps / 500kbps</td>        </tr>        <tr>            <td class="first-child">Video calling<br>            (HD)</td>            <td>1.2Mbps / 1.2Mbps</td>            <td class="last-child">1.5Mbps / 1.5Mbps</td>        </tr>        <tr>            <td class="first-child">Group video<br>            (3 people)</td>            <td>512kbps / 128kbps</td>            <td class="last-child">2Mbps / 512kbps</td>        </tr>        <tr>            <td class="first-child">Group video<br>            (5 people)</td>            <td>2Mbps / 128kbps</td>            <td class="last-child">4Mbps / 512kbps</td>        </tr>        <tr>            <td class="first-child">Group video<br>            (7+ people)</td>            <td>4Mbps / 128kbps</td>            <td class="last-child">8Mbps / 512kbps</td>        </tr>    </tbody></table>
&#13;
&#13;
&#13;

来源:Skype https://support.skype.com/en/faq/FA1417/how-much-bandwidth-does-skype-need

您需要在两个客户端之间提供中间服务。

就像你看到的......还有许多东西仍然需要给出答案。规划将花费一些时间和很多关于您的目标和想法以及预算范围内的对话。

敏捷开发很可能是您的最佳选择,因为您将及时获得应用程序的功能。然后,您可以决定将要或不会构建的上传sprint的功能或将要解决的错误。需要改变的设计等。

希望我的回答有所帮助;)