Я изучал поддержку P2P во Flash 10, используя сервис Adobe Stratus. Я успешно смог отправить данные от одного пользователя другому, поставил мою проблему в том, что я не выяснил, как отправить данные назад простым способом (или как некоторый ответ на первый вызов).Простая двунаправленная связь через P2P NetStream
Что я сейчас делаю;
Сначала установить соединение с сервисом Stratus
nc = new NetConnection(); nc.addEventListener(NetStatusEvent.NET_STATUS, ncStatusHandler); nc.connect(APPLICATION_URL + DEVELOPER_KEY);
На стороне "сервер" я:
sendStream = new NetStream(nc, NetStream.DIRECT_CONNECTIONS); sendStream.addEventListener(NetStatusEvent.NET_STATUS, sendStreamHandler); sendStream.publish("file");
А на "клиента" стороне:
// remoteFileID.text is manually copied by the user from the server (which is nc.nearID). recvStream = new NetStream(nc, remoteFileID.text); recvStream.client = this; recvStream.addEventListener(NetStatusEvent.NET_STATUS, recvStreamHandler); recvStream.play("file");
Тогда я вызвать функцию удаленной на клиенте:
... sendStream.send("aRemoteFunction", parameterData); ...
Теперь моя проблема; Я хочу сделать то же самое от клиента к серверу, чтобы сообщить, что все прошло хорошо, или что-то не получилось. Из того, что я понимаю, мне придется настроить новый NetStream от клиента к серверу (то есть опубликовать на клиенте и играть на сервере). Но для этого серверу необходимо знать nc.nearID на клиенте.
Возможно ли получить этот идентификатор, не заставляя пользователя вручную копировать его с клиента на сервер? Или, есть ли более простой способ для клиента поговорить с сервером, который мне не хватает?
NetStream sendStream доступен только на сервер и установлен на * публиковать *, так что я только способен передавать данные от сервера к клиенту в этом потоке (и, следовательно, только nearID сервера, который клиент уже знает, так как он использовал его для подключения к серверу). – andsve
@andsve: ответ обновлен. – back2dos
У меня нет NetGroup.Neighbor.Connect (должен ли я?), Я получаю NetConnection.Connect.Success (от Stratus), а затем пару событий NetStream.Publish. * NetStream.Play. *, Но ни один из они включают peerID из того, что я могу понять. :( – andsve