当用户点击视频(RTSP)流媒体会话中的停止按钮时,发送TEARDOWN是否合适? 如果不是那么为什么??
答案 0 :(得分:1)
我认为,没有其他“保证”方式告诉服务器停止。 Quicktime和VLC都这样做,我不知道其他客户端。 正如您在RFC 2326的此页面中所看到的,建议使用PAUSE指令,但不是必需的。此外,它是暂停,而不是停止所以是的,TEARDOWN是正确的方法。
method direction object requirement
DESCRIBE C->S P,S recommended
ANNOUNCE C->S, S->C P,S optional
GET_PARAMETER C->S, S->C P,S optional
OPTIONS C->S, S->C P,S required
(S->C: optional)
PAUSE C->S P,S recommended
PLAY C->S P,S required
RECORD C->S P,S optional
REDIRECT S->C P,S optional
SETUP C->S S required
SET_PARAMETER C->S, S->C P,S optional
TEARDOWN C->S P,S required
答案 1 :(得分:1)
是的,这是合适的。
服务器应该为特定用户维护会话状态,他们不应该假设所有命令都来自同一个TCP连接,而是提供在第一个SETUP应答发送到客户端时创建的sessionid 。之后的所有请求都应包含sessionid(有例外)。通过发送TEARDOWN请求,客户端向服务器指示它可以释放与该用户关联的所有状态。
PAUSE只会指示服务器停止发送数据包,而不是释放与该会话相关联的状态。
答案 2 :(得分:0)
rtsp客户端软件拆除媒体会话的行为有多个实现。 Realplayer将在TEARDOWN之前发送PAUSE。 Quicktime Player和VLC将在没有PAUSE的情况下发送TEARDOWN。 我认为两者都可以接受。