У меня есть сервер EventMachine, отправляющий данные TCP клиенту Mac (через GCDAsyncSocket). Какое-то время он всегда работает безупречно, но неизбежно сервер внезапно перестает отправлять данные при каждом подключении. Соединение по-прежнему поддерживается, и сервер по-прежнему получает данные от клиента, но не в обратном направлении.
Когда это происходит, я обнаружил через соединение # get_outbound_data_size, что буфер отправки соединения бесконечно заполняется (через #send_data) и не отправляется клиенту.
Есть ли конкретные (и, надеюсь, исправимые) причины, по которым это могло произойти? Реактор продолжает гудеть, а другие активные соединения с сервером продолжают работать нормально (хотя иногда они тоже попадают в буферный ад).