| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Голосовой сервис |
| Автор: x8m6 21.5.2010, 00:54 |
| Нужно создать сервис для обмена голосовыми сообщениями через интернет. К клиенту с Web-сервера должно загружатся Java приложение, которое читает поток с микрофона, формирует из него сообщение и передает серверу. Сервер читает заголовок сообщения и передает его другому клиенту, которому оно предназначено. Возник вопрос как реализовать взаимодействие между клиентом и сервером? Сначала была идея сделать и клиента и сервера на сокетах. А сообщения передавать через tcp или udp -протокол. Но сервисом могут пользоватся клиенты, которые могут находится за NAT и тогда ничего же не выйдет так? Поэтому я решил передавать сообщения все же через http. Тут также есть несколько вариантов: 1) На сервере сервлет на клиенте аплет/JWS-приложение. Обмениваются сериализованными объектами через URLСonnection. 2) На сервере вэб-сервис на клиенте JWS-приложение. Обмениваются через XML. Какой из этих вариантов проще и эффективнее? Какие ещё можете предложить? И можно ли как то организовать обмен сообщениями между клиентами минуя сервер(сервер в этом случае используется только для отправки служебной информации, голосовой контент передается только между клиентами) ? |
| Автор: x8m6 21.5.2010, 02:40 |
| Переместите в Java: Работа с Сетью если можно |
| Автор: COVD 21.5.2010, 16:00 | ||||||||
Правильно.
- нет принципиальной разницы. XML может быть полезен, если кроме JWS предполагаются и другие, не java - клиенты.
"проще" реализовать поллинг - каждый клиент периодически опрашивает сервер на наличие сообшений. Возможно, "эффективнее" делать пуш с сервера. Для этого клиенты должны держать постоянные соединения. В http это имитируется "бесконечным ответом". Однако в поллинге, когда клиент регулярно обращается к серверу, физическое соединение по возможности не разрывается (http 1.1). И по сравнению с постоянным соединением здесь будет только дополнительный трафик, связанный с пересылкой http хедеров. Но зато регулярные запросы клиента упрощают организацию мониторинга на сервере - легко идентифицировать "умерших" клиентов.
В общем случае никак, учитывая "клиенты, которые могут находится за NAT". На начальном этапе этим лучше не заморачиваться. Вообще, вы описали типичный чат. |
| Автор: x8m6 22.5.2010, 00:14 | ||||
Переодически? Это с каким промежутком? Мне нужно чтобы голос доставлялся с минимальными задержками.
Можно пример кода? И как вообще отправить объект серверу и наоборот через http? |
| Автор: x8m6 23.5.2010, 00:25 |
| Вот случайно наткнулся на http://habrahabr.ru/blogs/webdev/79038/. По моему это то что надо. Что скажите? |
| Автор: COVD 25.5.2010, 17:16 | ||||
Наверное, вы телефонию делаете, VoIP. Добавлено через 12 минут и 34 секунды
Если в выборе протокола главным является "всепроходимость", то используются стандартные возможности HTTP, то, что декларируется в спецификации. Обсуждаемая же технология - всего лишь предложение, "кардинальное расширение протокола HTTP". Вот когда попадет в спецификацию, тогда и будет интересно. |
| Автор: x8m6 25.5.2010, 20:20 | ||
нет, не телефонию, просто аудиочат. |