Flash 查特勒的建筑

Flash 查特勒的建筑,flash,audio,random,chat,roulette-wheel-selection,Flash,Audio,Random,Chat,Roulette Wheel Selection,谁能给我解释一下chatroulette背后的架构吗? 我在考虑一个类似的项目,只实现音频 支持(对于初学者)。设置闪存服务器的最佳方法是什么? 如果是这样,我应该如何进入flash,我需要Flex4吗?我 有一些C++、C、java的初学者经验,但我从来没有 为网络开发任何东西 我还想知道随机发生器是如何匹配参与者的。 您将如何编写这样的代码 很明显,我在这里很无知,我非常感谢你的建议 关于这个问题--我不期望复制和粘贴解决方案。信息技术 很高兴听到你们如何解决这个问题 非常感谢您如何匹配参与

谁能给我解释一下chatroulette背后的架构吗? 我在考虑一个类似的项目,只实现音频 支持(对于初学者)。设置闪存服务器的最佳方法是什么? 如果是这样,我应该如何进入flash,我需要Flex4吗?我 有一些C++、C、java的初学者经验,但我从来没有 为网络开发任何东西

我还想知道随机发生器是如何匹配参与者的。 您将如何编写这样的代码

很明显,我在这里很无知,我非常感谢你的建议 关于这个问题--我不期望复制和粘贴解决方案。信息技术 很高兴听到你们如何解决这个问题


非常感谢

您如何匹配参与者?容易的。有一个名为“waiting users”的变量,该变量最初设置为null。当用户连接时,如果“等待用户”为空,则将连接用户设置为等待用户。如果等待用户不为null,则创建一个新线程来管理这两个用户的对话,并将等待用户设置为null。这种“随机性”意味着如果你有很多访客,对话应该是随机的。然而,如果你一次只有10个人进行对话,你就不会得到惊人的结果。您需要不断断开/连接才能使其正常工作

使用actionscript,您可以通过
micromic.get()
[使用谷歌获取更多信息]。。。您必须将收到的数据提供给服务器

为了不必不间断地发送HTTP头,您应该创建一个套接字[actionscript支持这个,查看flash.net。[socket/Sockets?我忘记了]],并连接到自定义编写的服务器,这很容易用c完成。。。我还没有用C++尝试过,还没有用java……p>
服务器将充当两个客户端之间的“代理”

AFAIK ChatRoulette在Flash Player 10.1中使用了一组新的API,其代号为Stratus,允许Flash Player实例之间进行点对点连接

所以,不再将视频和音频流推送到一个特殊的流媒体服务器,比如FMS或Red5,而是共享唯一ID,对等点直接相互连接

这极有可能减少事件直播的服务器负载,其中一个到服务器流的连接可以在近邻之间共享

如果Stratus没有直接在对等方之间推流,你能想象像ChatRoulette这样的东西的托管费用吗


如果您有兴趣了解更多信息,请查看Stratus关于Adobe lads的部分:

它使用wowza的流媒体服务器,而不是Adobe的cirrus,由于许可证限制,您无法在生产中使用它


这是一个关于在Flash10中实现p2p的非常好的视频教程+Stratus Stratus现在已经成熟到第二个版本,代号为Cirrus,这里有更多详细信息-我不知道这是否正确-根据许可证,Stratus或Cirrus不允许在生产中使用。