Выпуск IO(Http) ! Http.Bind
начинает прослушивание на порту и прием соединений. Однако сообщение Http.Unbind
не делает обратное - порт остается открытым. То есть он обрабатывается, и в журнале отображаются:Соответствующий Akka IO (Http) unbinding
DEBUG | TcpListener | Unbinding endpoint /0:0:0:0:0:0:0:0:38080
DEBUG | TcpListener | Unbound endpoint /0:0:0:0:0:0:0:0:38080, stopping listener
INFO | HttpListener | Unbound from /0.0.0.0:38080
Но порт по-прежнему обрабатывается приложением.
Исходный код TcpListener показывает, что Bind
регистрирует канал сокета в селекторе, но развязка просто закрывает канал. Для того, чтобы селектор позволял этому сокету фактически идти, нужно сделать вызов Selector.select*()
и это (я предполагаю) не произойдет.
Как-то я не думаю, что это ошибка Akka, но я делаю что-то неправильно. Каков правильный способ развязки гнезда IO(Http)
?
Я получаю команду 'Unbound'. Это тоже не временное состояние. Сокет остается в состоянии «LISTENING» в течение нескольких часов, пока я не закрою все приложение. –
Возможно ли, что вы отвязаете tcp, но не udp или наоборот? –
Нет, я уверен, что спрей-бис не использует HTTP через UDP. –