我做了一个聊天,主要受Cirrus Sample
Chat 的启发,工作正常,但在某些情况下,“NetStream.Connect.Success”不会被触发。
两个连接都通过了端口检查
在切换到 NetGroup 架构并假设这些问题与连接过程有关之前,我想知道:
- NetGroup 在 NetStream 连接过程中的行为是否与 NetStream Direct Connection 不同?
- NetGroup 的限制是什么?我读到使用它时有更多的延迟。
我做了一个聊天,主要受Cirrus Sample
Chat 的启发,工作正常,但在某些情况下,“NetStream.Connect.Success”不会被触发。
两个连接都通过了端口检查
在切换到 NetGroup 架构并假设这些问题与连接过程有关之前,我想知道:
- NetGroup 在 NetStream 连接过程中的行为是否与 NetStream Direct Connection 不同?
- NetGroup 的限制是什么?我读到使用它时有更多的延迟。
好的,所以首先,NetStream.Connect.Success 在 NetConnection 而不是 NetStream 上触发。对于试图完成这一切的人来说,这是最大的误解和挫败感。Adobe 这样做是出于遗留(历史)原因。因此,请先检查以确保您在正确的位置聆听。
如果您确定侦听器位于正确的位置,则可能存在 NAT 或防火墙通信问题,这些问题会阻止一个对等方在某些情况下看到另一个对等方。
现在关于组:
NetGroup 不会(必然)引入延迟。在少于 14 个成员的组中,您有一个完整的网格(所有成员都与所有其他成员有直接的对等连接)。如果您使用 sendToAllNeighbors(),使用少于 14 个成员的组仍然可以为您提供极快的 p2p 连接。您听说延迟的地方是关于 post()。post 运行了一堆引入新延迟的东西,因为它尝试每 10 秒联系我的 3 个降序、3 个升序、我的分数连接、我的 6 个最小潜伏和我的 1 个随机数……然后尝试将消息转发到分发给小组的其他成员。即使在小组中,这也可能需要一两秒钟。
这是一个来自 MAX 的视频的链接,该视频通过 rtmfp 及其基于环的架构的所有细节(可以这么说)Cool In-Depth Video About RTMFP