У меня есть реализация клиента Red5, которая публикует потоки, загруженные из видеофайла, на наш медиасервер wowza. Проблема в том, что если имя потока слишком большое - примерно больше 90 символов - клиент не публикует его и молча терпит неудачу. Все остальные действия, ожидаемые от клиента, выполняются: он подключается к серверу и создает поток. Но никогда не публикует поток. Я не вижу соответствующего сообщения RTMP и не вижу результирующей реакции в журналах wowza.
Я пытался отладить клиент и отследил выполнение, пока он не начал писать в SocketChannel. Все то же самое для случаев исполнения потока с более коротким именем (который публикует нормально) и потока с длинным именем, которому RTMP-команда «опубликовать» никогда не отправляется.
А вопросы:
Как дела?
если я записал несколько байтов в SocketChannel без каких-либо исключений - гарантирует ли это, что соответствующее сообщение было отправлено?
если я записал несколько байтов в SocketChannel без каких-либо исключений - могу ли я проверить средствами моей ОС (в моем случае MACOS), действительно ли байты куда-то записывались? Хотя я знаю, средствами WireShark, что этот кусок данных так и не был отправлен.
ОБНОВЛЕНИЕ ...и что еще более странно - после отправки "большого" пакета отправка меньшего не помогает. Никакие пакеты не могут быть отправлены после того, как пакет большей длины был отправлен в сокет.