OPTIONS
可能可行,但标准指定正确的方法是使用GET_PARAMETER
.
RFC2326 清楚地概述了
http://www.ietf.org/rfc/rfc2326.txt
10.8 获取参数
GET_PARAMETER 请求检索 URI 中指定的表示或流的参数值。回复和响应的内容留给实现。没有实体主体的 GET_PARAMETER 可用于测试客户端或服务器的活跃度(“ping”)。
虽然GET_PARAMETER
服务器可能不支持,但无法判断该服务器将如何响应OPTIONS
甚至不需要 sessionID 的请求。因此,不能保证它会使您现有的会话保持活动状态。
从阅读有关OPTIONS
请求的相同 RFC 可以清楚地看出这一点
10.1 选项
该行为等同于 [H9.2] 中描述的行为。OPTIONS 请求可以在任何时候发出,例如,如果客户端将要尝试非标准请求。它不影响服务器状态。
例子:
C->S: OPTIONS * RTSP/1.0
CSeq: 1
Require: implicit-play
Proxy-Require: gzipped-messages
S->C: RTSP/1.0 200 OK
CSeq: 1
Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE
请注意,这些必须是虚构的功能(希望我们不会故意忽略一个真正有用的功能,以便我们可以在本节中有一个强有力的示例)。
如果 GET_PARAMETER 不受支持,那么您将使用要保持活动状态的会话的 SessionId 发出 PLAY 请求。
即使 OPTIONS 不支持 Session ID 并且如果您已经在玩游戏也不会产生不利影响,这也应该有效。
对于 C# RtspClient,请参阅我的项目 @ https://net7mma.codeplex.com/
以及 CodeProject 上的文章@http ://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp