![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
x8m6 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 11.12.2008 Репутация: нет Всего: нет |
Нужно создать сервис для обмена голосовыми сообщениями через интернет.
К клиенту с Web-сервера должно загружатся Java приложение, которое читает поток с микрофона, формирует из него сообщение и передает серверу. Сервер читает заголовок сообщения и передает его другому клиенту, которому оно предназначено. Возник вопрос как реализовать взаимодействие между клиентом и сервером? Сначала была идея сделать и клиента и сервера на сокетах. А сообщения передавать через tcp или udp -протокол. Но сервисом могут пользоватся клиенты, которые могут находится за NAT и тогда ничего же не выйдет так? Поэтому я решил передавать сообщения все же через http. Тут также есть несколько вариантов: 1) На сервере сервлет на клиенте аплет/JWS-приложение. Обмениваются сериализованными объектами через URLСonnection. 2) На сервере вэб-сервис на клиенте JWS-приложение. Обмениваются через XML. Какой из этих вариантов проще и эффективнее? Какие ещё можете предложить? И можно ли как то организовать обмен сообщениями между клиентами минуя сервер(сервер в этом случае используется только для отправки служебной информации, голосовой контент передается только между клиентами) ? |
|||
|
||||
x8m6 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 11.12.2008 Репутация: нет Всего: нет |
Переместите в Java: Работа с Сетью если можно
|
|||
|
||||
amigooo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 5.7.2007 Репутация: нет Всего: нет |
А HTTP что, по воздуху работает? http://ru.wikipedia.org/wiki/%D0%9C%D0%BE%...D0%BB%D1%8C_OSI http://ru.wikipedia.org/wiki/HTTP |
|||
|
||||
COVD |
|
||||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Правильно.
- нет принципиальной разницы. XML может быть полезен, если кроме JWS предполагаются и другие, не java - клиенты.
"проще" реализовать поллинг - каждый клиент периодически опрашивает сервер на наличие сообшений. Возможно, "эффективнее" делать пуш с сервера. Для этого клиенты должны держать постоянные соединения. В http это имитируется "бесконечным ответом". Однако в поллинге, когда клиент регулярно обращается к серверу, физическое соединение по возможности не разрывается (http 1.1). И по сравнению с постоянным соединением здесь будет только дополнительный трафик, связанный с пересылкой http хедеров. Но зато регулярные запросы клиента упрощают организацию мониторинга на сервере - легко идентифицировать "умерших" клиентов.
В общем случае никак, учитывая "клиенты, которые могут находится за NAT". На начальном этапе этим лучше не заморачиваться. Вообще, вы описали типичный чат. Это сообщение отредактировал(а) COVD - 21.5.2010, 20:31 |
||||||||
|
|||||||||
x8m6 |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 11.12.2008 Репутация: нет Всего: нет |
Переодически? Это с каким промежутком? Мне нужно чтобы голос доставлялся с минимальными задержками.
Можно пример кода? И как вообще отправить объект серверу и наоборот через http? |
||||
|
|||||
x8m6 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 11.12.2008 Репутация: нет Всего: нет |
Вот случайно наткнулся на статью про ВэбСокеты. По моему это то что надо. Что скажите?
|
|||
|
||||
COVD |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Наверное, вы телефонию делаете, VoIP. Добавлено через 12 минут и 34 секунды
Если в выборе протокола главным является "всепроходимость", то используются стандартные возможности HTTP, то, что декларируется в спецификации. Обсуждаемая же технология - всего лишь предложение, "кардинальное расширение протокола HTTP". Вот когда попадет в спецификацию, тогда и будет интересно. |
||||
|
|||||
x8m6 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 11.12.2008 Репутация: нет Всего: нет |
нет, не телефонию, просто аудиочат. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |