Я работаю над реализацией существующей сетевой библиотеки в 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? Или эта функция может быть предложена другим браузером?