netGroup.sendToNearest
должен быть самым быстрым, но для его запуска требуется немного больше работы. Чтобы обработать сообщение, вам нужно прослушать событие NetGroup.SendTo.Notify
. Тем не менее, возможно, что вы можете получить сообщение, но НЕ быть конечным пунктом назначения для него ... другими словами, вы можете быть просто посредником в сети P2P и вам нужно переслать сообщение на ближайший ближайший узел. Таким образом, при обработке события NetGroup.SendTo.Notify
вам необходимо сначала проверить, конечный ли вы пункт назначения. Вы делаете это, проверяя event.info.fromLocal
. Если это правда, вы конечный пункт назначения, и вы должны делать с ним все, что хотите Если оно ложно, вы должны принять активное участие в пересылке сообщения. Чтобы переслать сообщение, вам нужно знать, какой идентификатор у конечного получателя, поэтому вам придется включить его в исходное сообщение. Вы можете переслать сообщение с чем-то вроде ...
if (!event.info.fromLocal)
netGroup.sendToNearest(event.info.message, event.info.message.destination)
Из того, что я понимаю, направленная маршрутизация должна быть в основном такой же скорости, что и публикация, но она не будет забивать сеть ненужными данными, которые будут передаваться всем, когда они на самом деле не нужны. Кроме того, направленная маршрутизация происходит по UDP и должна иметь те же ловушки, что и отправка - доставка НЕ гарантируется. Единственный способ гарантировать доставку через RTMFP - использовать репликацию объектов.
Вот еще немного информации о направленной маршрутизации: http://www.flashrealtime.com/directed-routing-explained-flash-p2p/