![]() |
RTMFP, обьясните по пальцам!
Здравствуйте. Пытаюсь разобраться с p2p соединением посредством RTMFP.
Естественно перед тем как спросить я не один час провел в гугле прежде чем написать на форум. И так, что собственно сейчас пытаюсь сделать... Флешка, в которой есть 2 окошка, в одном показывается видео с камеры пользователя, в другом с камеры подключенного пользователя, тоесть такой приватный как бы чат... Что понял и сделал: Получил код разработчика на сайте, создал NetConnection, подключился, создал sendStream, тобишь канал по которому собираюсь передавать видео и звук. Ну и получил peerID. На этом все. Дальше я закопался в примерах и в конец запутался. Поэтому прошу помощи у вас, товарищи... вот собственно код: Код AS3:
Прошу помогите, на самом деле срочно нужно сделать... |
http://labs.adobe.com/technologies/cirrus/samples/
Это превосходный пример на вашу тему. Там всё просто и понятно в исходниках. Сейчас у меня нет возможности поковыряться в вашем случае. И спрячьте ваш developer key. С одной стороны ничего страшного, но и ничего полезного тоже. |
Благодарю вас за пример, но к сожалению я его уже пытался копать и не разобрался.
Ключ разработчика спрятал, спасибо за замечание. Ну может кто еще поможет.... initRecvStream() запускается, но событий с него не получается никаких....может я до конца не понимаю весь механизм обмена peerID или еще чего... Нужен просто человек который сможет внятно обьяснить....можно по скайпу или аське, можно тут.... я как бы в as не дуб дубом, но просто с NetConnection как-то не доводилось работать....а тут узнал про него, и открываются такие перспективы если понять как он работает.... А вот этот пример мне нужно срочно сделать.... Спасибо большое всем кто ответит или что посоветует.... Добавлено спустя пару минут: Рассматриваю вариант использования без netgroup, сначала хотя бы просто понять как обмениваться видеопотоками. насчет этого я вас потом замучаю, хотя оооочень надеюсь что нет. |
|
Silicium, спасибо. Видел эту статью, щас попробую изучить ее более детально. Но там обмен Peer ID идет через php&mySQL, это не совсем подходит, так как именно этот обмен без php хочется реализовать...а сам механизм непонятен.
Ну жду еще помощи. |
Цитата:
|
Aquahawk, каким образом тогда они находят друг друга?
правильно ли я указываю видео поток вот таким способом: Код AS3:
Код AS3:
Код AS3:
|
Либо нетгруп, либо свой трекер.
|
да я не против нетгруп, только не понимаю как это реализуется....
|
Цитата:
Так Вы хотите узнать, как реализуется р2р посредством нетгрупп или без, я так и не пойму. Цитата:
|
ну а я пытаюсь щас сделать чтобы одно и то же приложение было и отправителем и слушателем....так нельзя?
farPeerID = callers.farID; для чего используется? |
Используйте библиотеку Tom'а Krcha.
И там же есть примеры. |
Цитата:
в краце: создаете публикующий поток. В его клиенте должен быть определен тот самый метот onPeerConnect, из которого Вы создаете принимающий поток. Ему в конструктор передаете callers.farID, и тогда он начинает (по вызову метода .play(name)) "слушать" оппонента. Вот и все. Отправка идет через публикующий поток, приме - через принимающий. Добавлено через 41 секунду Цитата:
|
Цитата:
А у меня пинг меньше 0.2 секунд. |
каким образом мне тогда сделать обмен этими ID?
помогите ктонибудь, как мне исправить код чтобы все получилось?....я уже просто целый день сижу и запутался в примерах совсем.....дайте аську, скайп или помогите исправить код....чтобы я наглядно увидел как надо было сделать....примеров достаточно....но под конец дня я уже ничего не понимаю.... очень прошу...))) знающему человеку пару минут потратить, а мне еще день копать.... |
Код выложи - посмотрим.
|
Код AS3:
|
Вызов метода initRecvStream должен быть тут sendStreamClient.onPeerConnect, и передавать ему в качестве параметра callers.farID. И вот тут recvStream = new NetStream(netConnection, farID); он и должен быть в конструкторе
|
Цитата:
Код AS3:
Цитата:
|
initRecvStream(farPeerID);
Вот farPeerID - это оно и есть. А так, как Вы делали: recvStream = new NetStream(netConnection, myPeerID); Это Вы к себе же и подключались) |
немного разобрался.....
создал отдельно клиента и отдельно вещателя, после запуска в текстовое поле вставляю id и начинает вещать....плохо конечно но без задержек.... теперь вопрос....как сделать чтобы они автоматически обменивались ими и друг у другу подключались? Добавлено спустя время: Я могу узнать кто подключился ко мне и вещать данные с его камеры....но изначально как сделать чтобы они знали как друг к другу подключиться?....если peerID присваивается только во время подключения? Silicium, Кстати спасибо большое, ты мне очень помог!!! |
|
да но там php, хотелось бы обойтись без него
|
Там php - только регистрация...
Можно и без нее обойтись. |
Каким образом?
Добавлено через 43 минуты есть еще кто не спит?.... последний штрих надо сделать.... но сижу над ним уже тоже долго Добавлено через 2 часа 20 минут Теперь проблема в другом. Тестировал все это дело на одном компьюетере, запуская просто в двух окнах браузера. Флешка сама на моем веб-сервере лежала, не локальном....Но щас другие люди не могут к ней подключиться..с других машин...в чем может быть проблема? |
чтобы не плодить тем отпишусь здесь, надеюсь автор не против всё же задачи одинаковые
мне нужно связать 2 флешки, делал всё по этой теме но нечего не вышло(флешка не видит когда к ней подключатся другая) пожалуйста подскажите в чём ошибка Код AS3:
|
А кто к кому подключается? Запускаешь две флэшки - и они обе ждут подключения. Кто-то из ник должен первым приконнектиться к другому, а для этого ты должен создать слушающий поток с руками заданным farID, равным nearID первой запущенной флэшки
|
а есть где нить в исходниках пример такого слушащего потока ? а то я уж голову сломал как это всё работает
Башка кипит уже, так что извиняйте если чушь несу, моя задача узнать nearID первой флешки и вбить его сюда ? Код AS3:
|
именно
|
в общем сделал как вы сказали и всё получилось, я передавал координаты мышки из одной флешки в другую. Но вот вопрос если мышка хотя бы секунд 5 неактивна то возникает событие NetStream.Connect.Closed С чем это может быть связано ? если не ошибаюсь оно должно возникать когда одна из флешек фокус потеряет
|
у меня была такая проблема, когда я написал полностью статический класс для p2p соединения (буквально недавно, можете посмотреть темы, только ответа я так и не получил, хотя это скорее потому, что вопрос был весьма расплывчатый). короче говоря, у меня была проблема в том, что один из клиентов просто отваливался по непонятной причине. Переписал класс под синглтон - не отваливается. В чем причина - до сих пор понять не могу. По сути я просто из статик методов сделал не статик - проблема ушла.
ЗЫ если надо, могу поделиться классом. На звание библиотеки он не претендует, но свою роль наглядно выполняет - полезен, скорее, для понимания принципов p2p, хотя с ними вы вроде разобрались. |
да был бы признателен если б скинули ваш класс для изучения, с потерей соединения я разобрался(ну как сказать, локально до сих пор одна из флешек теряет соединение, а залил на сервер и всё вроде работает нормально) да и ещё вот проблемка вчера при тестировании появилась. Захожу в приложение я и ещё один товарищ, я не смог подключиться к его флешке через его nearID, а у него получилось, попросил ещё одного человека протестировать тогда вроде такой проблемы не возникло, у вас не было такого ?
|
| Часовой пояс GMT +4, время: 20:20. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.