Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.08.2013, 22:15
yekaterina вне форума Посмотреть профиль Отправить личное сообщение для yekaterina Найти все сообщения от yekaterina
  № 1  
Ответить с цитированием
yekaterina

Регистрация: Aug 2013
Сообщений: 4
По умолчанию Создание голосового чата

Всем доброго вечера!

Стоит задача разработать интерфейс для голосового чата. В качестве RTMP сервера выбор сделан, а вот с клиентской частью оказалось не так просто начать (я в основном на JavaScript пишу / флеш только начала изучать, заранее прошу прощения).

Я так поняла, что вся работа идет c NetStream.publish(), где предварительно нужно приаттачить микрофон, и с NetStream.play(), где connection/play нужно сделать отдельно по каждому участнику дискуссии.

Как/где вы обычно храните список всех участников нужной дискуссии, ведь нужно знать адреса всех потоков?
Я вижу только след. возможность: при вхождении в дискуссию записывать в БД имя/адрес потока пользователя. Оттуда же и брать все адреса для прослушивания. Делать это все через Ajax.

Как уведомлять текущих собеседников о новом госте? Таже средствами polling/longpolling смотря информацию из БД не появилась ли новая запись?

Буду благодарна за любую информацию и советы каким путем идти и на что смотреть, а также за ссылки с примерами, которые могут помочь.

Спасибо.


Последний раз редактировалось yekaterina; 15.08.2013 в 13:04.
Старый 09.08.2013, 22:59
KumoKairo вне форума Посмотреть профиль Отправить личное сообщение для KumoKairo Найти все сообщения от KumoKairo
  № 2  
Ответить с цитированием
KumoKairo
 
Аватар для KumoKairo

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
Обычно поднимают небольшой бэкенд сервер, который хранит данные о подключенных в данный момент клиентах, их RTMP id и другую необходимую информацию, и этот же сервер соединяет клиенты друг с другом. Писать можно на чем угодно, я видел даже скрипты на питоне в 30 строчек. Тут больше зависит от "готового" опыта - кто-то писал на Java, кто-то на PHP, кто-то на C++, это не принципиально.
Когда мы экспериментировали с P2P соединениями, писали сервер на Java с использованием Netty.io библиотеки.

Где-то был хороший пример реализации видео и аудио чата через RTMP и скрипт на Python, добавлю ссылку если найду

Кстати сразу настраивайтесь на то, что у 30% клиентов запускаться приложение не будет из-за ограничений NAT и прочих запрещяющих вещей

Старый 12.08.2013, 12:29
yekaterina вне форума Посмотреть профиль Отправить личное сообщение для yekaterina Найти все сообщения от yekaterina
  № 3  
Ответить с цитированием
yekaterina

Регистрация: Aug 2013
Сообщений: 4
Спасибо за информацию. В данный момент собираюсь использовать Faye[1] в качестве канала и БД на сервере для хранения информации о подключениях.

[1]: faye.jcoglan.com

Старый 12.08.2013, 21:55
yekaterina вне форума Посмотреть профиль Отправить личное сообщение для yekaterina Найти все сообщения от yekaterina
  № 4  
Ответить с цитированием
yekaterina

Регистрация: Aug 2013
Сообщений: 4
Цитата:
Сообщение от okouser Посмотреть сообщение
Не слышал о таком. Бегло пробежался. Такой вопрос:
А он разве поддерживает аудио?
Нет, это pub/sub[1], чтобы иметь возможность сообщить текущим участникам о новом сервером.

Может я все усложняю / или не так поняла, и есть возможность сделать проще? Попробую описать снова:

У RTMP сервера два основных акта с которыми флеш взаимодействует:
  • Публикация потока
  • Прослушивание потока
  1. Для того, чтобы подключиться к интересующей дискуссии нужно знать RTMP ID всех участников (чтобы на каждого создать по NetStream). Для этого я собираюсь хранить информацию на сервере в БД.
  2. Далее нужно сообщить всем участникам (флешу), о новом RTMP ID нового участника. Собираюсь делать с помощью JavaScript, опрашивая "периодически" сервер, а не появился ли кто новый.

Про "виртуальный мультикастинг" от okouser и "и этот же сервер соединяет клиенты друг с другом" от KumoKairo я поняла мало. Если бы были хоть какие-нибудь ссылки про информацию, было бы здорово.

[1]: http://en.wikipedia.org/wiki/Publish...scribe_pattern


Последний раз редактировалось yekaterina; 12.08.2013 в 23:07.
Старый 14.08.2013, 15:43
yekaterina вне форума Посмотреть профиль Отправить личное сообщение для yekaterina Найти все сообщения от yekaterina
  № 5  
Ответить с цитированием
yekaterina

Регистрация: Aug 2013
Сообщений: 4
Цитата:
Сообщение от okouser Посмотреть сообщение
Ссылок привести не могу, поскольку ничего подобного и не видел. Все реализации свои. Суть в том, что если есть доступ к коду сервера, можно переписать его таким образом, что отпадет необходимость в обращениях к БД, и сервер сам будет хранить и выдавать список всех имеющихся групп и участников и оповещать о появлении новых.
Кстати, в отличие от RTMFP у соединений в RTMP нет встроенных идентификаторов, поэтому идентификацию в вашем случае можно проводить только по url и названию потока.
Вариант с БД, если есть опыт, тоже совсем неплох. Правда, необходимость постоянной синхронизации с сервером может создавать дополнительные нагрузки на клиенте.
Кстати, неясно, а зачем JS, если клиент будет написан на AS.
Решила, что реализовать дизайн проще на HTML/JS. В качестве AS будет коробка с интерфейсом:
  • сделать publish себя
  • подключиться к такому-то потоку
  • mute себя

Общение с AS коробкой посредством JS (ExternalInterface). В итоге флеш занимается только стримом, для компиляции одного файла одна команда "as3compile Discussion.as -N", не нужно думать о Flash Studio. На стороне JS управление этой коробкой, comet с сервером, где вся информация о дискуссии.

Выглядит как изврат? )


Последний раз редактировалось yekaterina; 14.08.2013 в 17:08.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:39.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.