Повторное использование адреса для сокета UDP в приложении Chrome

Я работаю над реализацией существующей сетевой библиотеки в Chrome, построенной на основе многоадресной рассылки UDP. Клиенты, которые хотят общаться друг с другом, привязываются к одному и тому же многоадресному адресу и порту. Чтобы избежать конфликтов адресов, реализации библиотеки устанавливают параметр «Повторное использование адреса» для сокетов по мере их создания. Например, реализация Java включает что-то вроде этого:

...
MulticastSocket socket = new MulticastSocket(port);
socket.setReuseAddress(true);
socket.joinGroup(address);
...

К сожалению, похоже, что в chrome.sockets.udp API нет эквивалентной опции. Это означает, что если я запускаю сетевую библиотеку в другом процессе на моем локальном компьютере (относительно распространенный вариант использования), я получаю сообщение об ошибке при попытке привязать сокет в моем приложении Chrome. Обратный вызов от chrome.sockets.udp.bind дает мне код ошибки -147.

Я бегло просмотрел Native Client, но нашел некоторую информацию, свидетельствующую о том, что он еще не поддерживает многоадресную рассылку UDP.

Есть ли способ повторно использовать многоадресный адрес UDP из приложения Chrome? Или эта функция может быть предложена другим браузером?


person theisenp    schedule 17.05.2014    source источник


Ответы (1)


Боюсь, что для Chrome это запрос известной функции, который был назначен, но не показывает прогресс за пол года. На данный момент в API действительно нет эквивалентной опции.

Вы можете обойти все это с помощью собственного хоста обмена сообщениями, но в зависимости от того, как вы хотите развернуть свое приложение / расширение может быть чрезмерно неуклюжим.

Это может быть связанный (а также незаконченный) запрос функции для Firefox.

person Xan    schedule 20.05.2014
comment
Вот чего я боялся. К сожалению, похоже, что Native Messaging Host мне тоже не подошел бы. Цель проекта - заменить собственное приложение, поэтому я не могу требовать собственное приложение в качестве зависимости (если только оно не может быть автоматически упаковано / скомпилировано / скомпилировано с приложением браузера). - person theisenp; 21.05.2014
comment
Это именно то, что я имел в виду под неуклюжим, вы не можете связать его в Интернет-магазине и вам нужен отдельный установщик. - person Xan; 23.05.2014