6

这是针对我正在上的编程课。我符合先决条件,这只是 C++ 方面的强大知识。

澄清一下:这不应该是桌面应用程序的后端。该网站在浏览器中进行视频聊天、文件发送、文本聊天。

所以我没有Web开发经验。我以前玩过 PHP,看过一本 JavaScript 的书,感觉用起来很舒服。我知道 MySQL 是什么以及如何设置表和东西。

在接下来的 8 周内我需要做的是:

  • 让视频聊天正常工作(2 人之间)
  • 有一个登录页面,每个用户都有一个个人资料和联系人列表
  • 文字聊天(2人之间)
  • 文件共享(2 人之间)

我不知道用什么来完成这个。我有一些想法,但我不确定它们是否真的有效。我被允许使用开源库、程序、代码等来构建这个 Web 应用程序。

如果有人可以引导我朝着正确的方向前进,请建议我应该如何实现这些功能,我将不胜感激。

另外,当我一直在谷歌搜索并研究如何做这样的事情时,我看到了一个叫做 CakePHP 的东西。你会建议我用这个吗?如果是这样,我到底应该用它做什么?

4

2 回答 2

8

你会需要很多咖啡!

Skype 使用点对点和客户端/服务器方法的混合架构来获取数据。如果这仅在内部 LAN 上运行,您不必担心中间的服务器,而可以专注于设置对等连接。

在现实世界中,计算机通过称为 NAT 的东西被路由器隐藏,Skype 使用服务器让您通过 NAT 登录并设置开放端口。然后 Skype 将此信息发送给您的其他对等方,并从那里运行对等连接。

在内部网络上,您可以通过开放的 UDP 端口与他人通信。Skype 使用它而不是 TCP,您在 Internet 上的许多其他通信都依赖于此。基本上,你得不到可靠的交付,两端的应用程序都适应了这一点。(即,当数据包丢失或损坏时,您的视频会冻结一秒钟)

              SKYPE SERVER
                 /    \
                /      \
               /        \
              /          \
        PEER 1 --------- PEER 2

在弄清楚如何通过网络运行之后,您需要学习 Windows Image Acquisition API,这是使用网络摄像头获取静态图片的标准方法。你连续拍了足够多的这张照片和宾果游戏!您有一个乡巴佬视频流要通过网络发送。

我假设 MySQL 可以很好地与 PHP 发布的 SOAP web 服务一起处理登录和联系人数据库......

为什么称它为 Web 应用程序?它会在网络浏览器中运行吗?这只是一个网络应用程序,对吧?

还有一条建议...用 C# 或其他一些 .NET 语言进行编程可能会有所帮助,因为您可以使用更多控件。例如,有一个 WIA 控件可以轻松地将视频流通过管道传输到您的应用程序中。

于 2012-01-26T05:44:46.420 回答
0

我认为这些链接可能对您有用:

http://www.codeproject.com/aspnet/webcamimage.asp
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1339&lngWId=10

另外我建议您使用 UDP 连接,
并开发一些类似标头的简单原型
,例如标头 0x01 表示下一个将是消息结构
0x02,下一个将是帧结构(视频的网络流)等等

于 2012-01-26T05:35:14.543 回答