2015-01-31 6 views
0

Я работаю над проектом, который включает в себя java-клиент, взаимодействующий с сервером на основе socket.io через websockets. Чтобы проверить откат от websockets до xhr-опроса, мне нужно смоделировать блокировку websocket на моем хосте Windows.Отключить websockets на окнах

Как это можно сделать?

+0

звучит как-то вы можете установить в настройках брандмауэра – yhussain

+1

@yhussain - вид трудно блокируется в брандмауэре, потому что запрос webSocket начинается как HTTP-запрос на ваш веб-сервер на обычном порту 80. Фактически, одна из причин, по которой он был разработан таким образом, заключается в том, что он будет работать с большинством брандмауэров, разрешающих веб-трафик. – jfriend00

ответ

0

Поскольку это всегда ваш сервер, и вы знаете, что ваш сервер всегда поддерживает сетевые сокеты, вам никогда не нужно беспокоиться о состоянии, когда клиент поддерживает сетевые сокеты, но ваш сервер этого не делает. Итак, что вам нужно проверить - это условие, когда клиент не поддерживает веб-сокеты.

Вы должны быть в состоянии проверить это, временно изменив одну строку, где вы создаете свой webSocket на стороне клиента javascript, чтобы ограничить транспорты, которые socket.io может использовать только для использования метода опроса.

См. Этот вопрос, и это ответы на другие вопросы: How can i temporarily disable websocket in Google Chrome?.

1

Небезопасно отключать websocket в брандмауэре Windows. Отключение этого протокола в браузере не является способом - если вы хотите протестировать резервную копию, когда websocket поддерживается браузером, но заблокирован брандмауэром, антивирусом, правилами политики домена, ...

Я смоделировал это поведение, запустив узел nodejs server с помощью grunt-connect-proxy. По умолчанию он блокирует веб-службой: // протокол, но вы можете легко включить его с помощью

option.ws = истинный

Смежные вопросы