Для Chrome развивается API для прямых TCP и UDP коммуникаций
Компания Google приступила к реализации в Chrome нового API Raw Sockets, позволяющего web-приложениям устанавливать прямые сетевые соединения с использованием протоколов TCP и UDP. В 2015 году консорциумом W3C уже была предпринята попытка стандартизации API «TCP and UDP Socket», но участники рабочей группы не достигли консенсуса и разработка данного API была остановлена.
Необходимость добавления нового API объясняется предоставлением возможности взаимодействия с сетевыми устройствами, которые используют собственные протоколы, работающие поверх TCP и UDP, и не поддерживают взаимодействие через HTTPS или WebSockets. Отмечается, что API Raw Sockets дополнит уже имеющиеся в браузере низкоуровневые программные интерфейсы WebUSB, WebMIDI и WebBluetooth, позволяющие взаимодействовать с локальными устройствами.
Для исключения негативного влияния на безопасность API Raw Sockets будет допускать сетевые обращения только инициированные с согласия пользователя и ограниченные списком разрешённых пользователем хостов. Пользователь должен будет явно подтверждать первую попытку соединения для нового хоста. Повторные соединения будут допускаться без отдельного запроса, но интенсивность обращений через Raw Sockets будет лимитирована. UDP-пакеты, полученные с хостов, не одобренных пользователем, будут игнорироваться и не доходить до web-приложения. Начальная реализация не предусматривает создания слушающих сокетов, но в будущем не исключается предоставление вызовов для приёма входящих соединений с localhost или списка известных хостов.
Среди рисков, которые могут возникнуть при реализации нового API, отмечается его возможное неприятие производителями других браузеров, что может привести к проблемам с совместимостью. Разработчики движков Mozilla Gecko и WebKit пока не выработали свою позицию по поводу возможной реализации API Raw Sockets.
Web-разработчики положительно отозвались о новом API и высказали много новых идей об его применении в областях, которых API XMLHttpRequest, WebSocket и WebRTC недостаточно (от создания браузерных клиентов для SSH, RDP, IMAP, SMTP, IRC и протоколов вывода на печать до разработки распределённых P2P-систем с DHT (Distributed Hash Table), поддержки IPFS и взаимодействия с IoT-устройствами). Developers have used browser plugins — such as Java applets, ActiveX, Adobe Flex or Microsoft Silverlight — to establish raw TCP or UDP communication from the browser, without relaying through a web server.
Источник: http://www.opennet.ru/opennews/art.shtml? num=53582
© OpenNet