我有一个 Red5 客户端实现,它发布流,从视频文件加载到我们的 wowza 媒体服务器。问题是,如果流名称很大——大约超过 90 个符号——客户端不会发布它并且会静默失败。客户端预期的所有其他操作都已完成:它连接到服务器并创建一个流。但从不发布流。我没有看到相应的 RTMP 消息,也没有在 wowza 的日志中看到相应的反应。
我尝试调试客户端并跟踪执行,直到它开始写入 SocketChannel。对于执行较短的命名流(可以发布)和具有长名称的流的情况,一切都是相同的,永远不会发送“发布”的 RTMP 命令。
一个问题是:
这是怎么回事?
如果我已经向 SocketChannel 写入了一些字节而没有抛出任何异常 - 它是否保证发送了相应的消息?
如果我已经向 SocketChannel 写入了一些字节而没有抛出任何异常 - 我可以通过我的操作系统(在我的情况下为 MACOS)检查这些字节是否真的写在某个地方?虽然我知道,通过 WireShark,这条数据从未发送过。
更新......这更奇怪 - 在发送“大”数据包之后发送一个较小的数据包并没有帮助。将更大长度的数据包提交到套接字后,将无法发送数据包。