Брандмауэр Kaspersky / Avast заблокировал сообщения, когда я использую сервер websocket (socket.io на узле.
Что можно сделать?
Я могу на 100% сказать вам, что Avast, например, блокирует не только веб-сокеты, но и то, что я вижу из моего сокета.IO приложение также XHR-опрос и другие вещи.
Это неприемлемо, я даже тестировал на 80-м порту, и он не работает. Какой ужасный кусок программного обеспечения.
Редактировать: это список заблокированных портов антивирусами (Dead 2017-07-20)
Первое правило брандмауэра: он не может блокировать то, что не может чувствовать.
Брандмауэр позволяет TLS? Если так, обслуживайте контент через WSS вместо WS.
Обычный клиент WSS откроет вам соединение TLS (источник) и отправит вам следующее:
GET /demo HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: example.com
Origin: http://example.com
WebSocket-Protocol: sample
Брандмауэр не может обнаружить это, потому что это по TLS.
Клиент HTTP-CONNECT-WSS отправит вам следующее:
CONNECT example.com:443 HTTP/1.1
Host: example.com
Брандмауэр видит это как еще одно соединение HTTP-CONNECT-TLS. (источник)
Многие интернет-провайдеры блокируют порт 80, чтобы запретить своим клиентам размещать веб-серверы на своих домашних компьютерах.
Возможно, вам не удастся разблокировать порт 80 у вашего интернет-провайдера.
Также, насколько мне известно, Avast не является брандмауэром.
Вы можете попробовать использовать порт 443 (который используется для https), если это возможно в вашем случае.