Я не уверен, что вы ожидаете, основываясь на документации двух методов, на которые вы ссылаетесь, ни один из них не говорит о том, что он закроет TCP-соединение, наоборот, они говорят, что не ждут или сделать что-нибудь в отношении соединения TCP: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/rpc/http/HTTPService.html
отменить ()
- Отменяет последний вызов службы или вызов с указанным идентификатором. Даже если сетевая операция все еще может продолжаться, результат или ошибка не отправляются (<- это то, что он делает, останавливает отправку событий для результата или ошибки). </li>
разъединение ()
- Отключает сетевое соединение службы. Этот метод не ожидает завершения незавершенных сетевых операций (не указывает, что он останавливает существующие сетевые операции, только если он отключает сетевое подключение этих служб).
Вы можете покопаться в источнике, чтобы получить более конкретное представление о том, что происходит, но в основном, как говорится в документации, это просто удаление вызовов из списка, которое он хранит локально, для отправки событий для "активных" вызовов, у которых есть прослушиватели. По сути, у Flex нет возможности узнать, с каким сервисом / сервером он имеет дело, и соответствующим образом дать сигнал серверу отменить все операции, которые он выполняет в данный момент. Вы можете написать другую службу на сервере, которая специально предназначена для уничтожения другого процесса, поэтому вы можете вызвать отмену на HTTPService, а затем отправить еще один запрос на сервер, который выполняет ваш сценарий процесса kill (закрытие открытого сокета, остановка любого в ожидании операций, при необходимости убивая или перезапуская сервисы), но это никак не может быть полностью автоматизировано без знания того, какая обработка выполняется на стороне сервера, и которую вы хотите остановить. Представьте, если бы был открытый шлюз для отмены операций на сервере с помощью клиентского кода, это звучит опасно для меня.