Как разговаривать с сокетами UDP с HTML5?
Что у меня:
Работает сервер приложений С++, готов к отправке данных клиенту, который предназначен для страницы HTML5 или приложения.
Что мне нужно: Есть ли способ связи с использованием порта udp с HTML5, поскольку оба сервера С++ и приложение HTML5 являются локальными для системы?
Что я знаю:
- Из-за проблемы безопасности JS не разрешает передачу UDP-порта из браузера.
- Читали во многих местах, ответ - нет. Но ответы старые.
Является ли ответ еще "НЕТ"?
Возможна ли какая-либо работа?
Любое преимущество оценивается.
Ответы
Ответ 1
Да, ответ по-прежнему "нет". Веб-узлы основаны на TCP. Обратите внимание, что WebSocket не является простым TCP-соединением, есть HTTP-согласование и протокол кадрирования. Таким образом, вы также не можете создать обычное TCP-соединение в Javascript.
WebRTC основан на UDP, он может охватывать ваши варианты использования: http://www.html5rocks.com/en/tutorials/webrtc/datachannels/
Ответ 2
Теперь у Chrome есть что-то: https://developer.chrome.com/apps/sockets_udp
Ответ 3
Это основная проблема для геймеров. См. Эту ссылку для обсуждения websockets, webrtc, quic (в хроме) и автора netcode.io
Ответ 4
Вы можете использовать работу, разработать программу / script/server (я бы использовал PHP, являющийся клиентом html), чтобы получить грамм UDP с сервера, если вы хотите, чтобы я мог помочь, у меня есть работал над чем-то подобным.
Ответ 5
Вы также можете создать дополнительный локальный сервер python для объединения данных между вашим С++-приложением и веб-страницей.
Веб-страница html5 подключается к локальному порту, который разрешает подключение к веб-соке (используйте Flask/торнадо).
Приложение С++ подключается к прослушивателю UDP на другом порту. См. https://wiki.python.org/moin/UdpCommunication для настройки.
Сервер python в основном формирует прозрачный мост данных между портом UDP и соединением с websocket.