RTSP 协议怎样返回“心跳”

yshuise 2010-05-25 11:00:44
RTSP文档中说:

12.37 会话
该请求和响应头部域标识出一个根据表示URL,由媒体服务器的SETUP响应开始,由TEARDOWN终止的会话。会话标识由媒体服务器给出(见3.4节)。一旦客户端收到一个会话标识,它【必须】对每个与该会话关联的请求都返回该标识。如果服务器有其他能唯一标识出一个会话的途径,如动态产生的URL,它并不一定要建立一个会话标识。
Session = "Session" ":" session-id [ ";" "timeout" "=" delta-seconds ]
超时(timeout)参数只允许出现在响应头部。服务器用它向客户端指示,服务器打算在由于缺少反馈信息(见章节A)而关闭会话前等RTSP命令等多久。timeout的单位是秒,默认值为60秒(1分钟)。
注意:会话标识把横跨传输会话或连接的RTSP会话标识出来。一个RTSP会话可能会发送对应多个RTSP URL的控制消息。因此,客户端可以用同一个会话控制一个表示中的多个流,只要这些流来自于同一个服务器。(见章节14的例子)。但是,同一个客户端对于同一个URL的多个“用户”【必须】使用不同的会话标识。
区分来自于同一个客户端针对同一个URL的不同传输请求时需要会话标识。
如果会话标识是非法的,则返回454响应(找不到会话)。


关键 是该怎样去实现?
...全文
895 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yshuise 2010-05-26
  • 打赏
  • 举报
回复
我已经解决了,直接看开源的源码,从而确定我的是对的。我给你了100分,算是慷慨吧。
healer_kx 2010-05-26
  • 打赏
  • 举报
回复
真的不会。。。呵呵,不好意思,你要是给我再多的信息,我愿意跟你一起研究一下了。反正以后都很闲了。
yshuise 2010-05-25
  • 打赏
  • 举报
回复
甘草高手出现,也只给个“MARK”?
yshuise 2010-05-25
  • 打赏
  • 举报
回复
总之,服务器根据收到的请求改变状态。如果服务器处于Playing或Recording和单播模式下,且如果在给定期间没有从客户端收到“健康的”信息,例如RTCP报告或RTSP命令,服务器【可能】会转到Init状态或关闭RTSP会话。服务器可以在会话响应头部(12.37节)声明另一个超时值。如果服务器状态为Ready,且在一分钟或者更长时间内没有收到RTSP请求,它【可能】转为Init状态。注意某些请求是在未来的时间或位置起作用(如PAUSE),服务器在合适的时间状态的改变。在到达客户端所请求范围的末端后,服务器从Playing或Recording状态转为Ready。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧