JavaScript может не открыть произвольные TCP-соединения, поскольку это позволит использовать все виды хаоса в сочетании с услугами, которые аутентифицируются на основе IP-адреса или вообще не защищены (и защищены только брандмауэрами). Это включает в себя общие файлы Windows или NFS, ваш средний принтер, среднюю сетевую игру, средний веб-интерфейс домашнего маршрутизатора и множество корпоративного программного обеспечения.
Вы не можете запретить браузеру посещение вредоносного сайта (так как это включает visiting a trusted site with malicious ads). Если эти сайты могут влиять на произвольные TCP-соединения, они могут, например, попробовать каждый IP-адрес в RFC 1918 private address ranges или каждый IP-адрес в диапазоне адресов организации, из которой приходит клиент, и определить, какие устройства у вас есть. Это само по себе представляет собой серьезное нарушение конфиденциальности, но представьте, что вредоносный сайт нашел принтер, а затем распечатал спам в вашем офисе, как только вы его случайно посетили.
Что вы можете сделать, это использовать сервер WebSocket для перевода собственного TCP в WebSockets. Большинство реализаций Websocket будут иметь такой сервер, как демонстрационное приложение, но вы также можете использовать standalone proxy.
Javascript не может выполнять TCP. Вам нужна помощь на стороне сервера. – zneak
Взгляните на [this] (http://socket.io/) – andriy
@zneak - почему Javascript не может выполнять TCP? Я вижу новый стандарт, ползущий Javascript spine: http://www.w3.org/TR/raw-sockets/ –