我正在尝试通过SSL套接字与RTMP客户端连接到我的Red5服务器。基于Paul Gregoire's blog post关于Red5和RTMPS,这些是我设置新的Red5 RTMPS服务器的步骤:
然后我继续使用JVM参数“-Djavax.net.debug = ssl”启动Red5服务器,以便在控制台中显示SSL调试信息。
作为一个简单的测试,我尝试使用tls库连接到node.js服务器:
tls.connect(8443, 'localhost', null); // tls.connect(port, host, callback);
我在服务器控制台中注意到的第一件事是第1106行:
[DEBUG] [pool-11-thread-1] org.red5.server.net.rtmp.codec.RTMPProtocolDecoder - Handshake init too small, buffering. remaining: 338
我的第一个想法是服务器无法解码RTMP握手,因为服务器正在跳过客户端尝试启动的SSL握手。通过进一步梳理服务器控制台,我发现尽管客户端通过SSL套接字连接,SSL握手仍然不会发生。 Here是node.js客户端调用上述行的结果的完整服务器控制台输出。
尝试通过SSL连接到服务器时我做错了什么?如何设置Red5以使用RTMPS?