Red5的一般客户端连接各个事件的触发顺序
来源:互联网 发布:ios网络请求http协议 编辑:程序博客网 时间:2024/06/07 06:29
假设用户登录的地址是
rtmp://localhost/MyChatRoom/lobby/roomA
以下是事件按先后顺序排列
程序开始
appStart:MyChatRoom
Start:
(在RED5启动的时候会自动去启动APP,从而触发以上事件)
登录
roomStart:/lobby
Start:/lobby
roomStart:/lobby/roomA
Start:/lobby/roomA
appConnect:0
connect
appJoin:0:
roomConnect:0
connect:/lobby
roomJoin:0:/lobby
roomConnect:0
connect:/lobby/roomA
roomJoin:0:/lobby/roomA
第二个用户登录
appConnect:1
connect
appJoin:1:
roomConnect:1
connect:/lobby
roomJoin:1:/lobby
roomConnect:1
connect:/lobby/roomA
roomJoin:1:/lobby/roomA
第二个用户离开
roomDisconnect:1
disconnect:/lobby/roomA
roomLeave:1:/lobby/roomA
roomDisconnect:1
disconnect:/lobby
roomLeave:1:/lobby
appDisconnect:1
disconnect:
appLeave:1:
离开
roomDisconnect:0
disconnect:/lobby/roomA
roomLeave:0:/lobby/roomA
roomStop:/lobby/roomA
stop:/lobby/roomA
roomDisconnect:0
disconnect:/lobby
roomLeave:0:/lobby
roomStop:/lobby
stop:/lobby
appDisconnect
disconnect:
appLeave:0:
总结:
rtmp://localhost/MyChatRoom/lobby/roomA
GlobalScope(default) --> WebScope(MyChatRoom) --> Scope(lobby)
--> Scope(roomA)
进入时:
先从第一个Scope,lobby开始,
1,执行房间启动ApplicationMBean.roomStart(IScope lobby)
2,执行启动IScopeHandler.start(IScope lobby)
再开始到第二个Scope,roomA开始
3,执行房间启动ApplicationMBean.roomStart(IScope roomA)
4,执行启动IScopeHandler.start(IScope roomA)
5.然后开始执行ApplicationMBean.appConnect(IConnection conn,Object[] params)
6,执行IScopeHandler.connect(IConnection conn, IScope app, Object[] params)
7,然后执行ApplicationMBean.appJoin(IClient client, IScope app)
从第一个Scope,lobby开始,
8,然后执行ApplicationMBean.roomConnect(IConnection conn, Object[] params)
9,执行IScopeHandler.connect(IConnection conn, IScope lobby, Object[] params)
10,执行ApplicationMBean.roomJoin(IClient client, IScope lobby)
第二个Scope,roomA开始,
11,然后执行ApplicationMBean.roomConnect(IConnection conn, Object[] params)
12,执行IScopeHandler.connect(IConnection conn, IScope roomA, Object[] params)
13,执行ApplicationMBean.roomJoin(IClient client, IScope roomA)
当第二个用户进入同一房间时,房间不用重新建立,故从步骤5开始执行
当第二个用户离开时
从最外层的Scope(roomA)开始
1,执行ApplicationMBean.roomDisconnect(IConnection conn)
2,执行IScopeHandler.disconnect(IConnection conn, IScope roomA)
3,执行ApplicationMBean.roomLeave(IClient client, IScope roomA)
再到Scope(lobby)
4,执行ApplicationMBean.roomDisconnect(IConnection conn)
5,执行IScopeHandler.disconnect(IConnection conn, IScope lobby)
6,执行ApplicationMBean.roomLeave(IClient client, IScope lobby)
再是WebScope(MyChatRoom)
7,执行ApplicationMBean.appDisconnect(IConnection conn)
8,执行IScopeHandler.disconnect(IConnection conn, IScope app)
9,执行ApplicationMBean.appLeave(IClient client, IScope app)
当第一个,也是最后一个用户也离开的时候.情况相似.
只不过在roomLeave之后,会接着关闭这个房间
先调用ApplicationMBean.roomStop(IScope room)
再调用IScopeHandler.stop(IScope roomScope)
app不会因为所有客户都不在而自动关闭.
- Red5的一般客户端连接各个事件的触发顺序
- epoll的各个事件触发条件测试
- MaterPage中事件的触发顺序
- 事件的触发时机及先后顺序
- asp.net里事件的触发顺序
- 事件的触发时机及先后顺序
- 事件的触发时机及先后顺序
- Jquery控制点击事件的触发顺序
- 如何触发AspxGridview的PageIndexChanged 客户端事件?
- DataGridView的Cell事件的先后触发顺序
- ASP.NET 2.0中Page事件的触发顺序
- 页面(Page)加载用户控件(UserControl)的事件触发顺序
- 页面(Page)加载用户控件(UserControl)的事件触发顺序
- ASP.NET 2.0 中各事件的触发顺序
- 文本框的blur与change事件触发顺序
- 【PB】事件的触发时机及先后顺序
- 【PB】事件的触发时机及先后顺序
- 【PB】事件的触发时机及先后顺序
- 游戏服务器架构
- java日志组件logback、slf4j的介绍及配置使用方法(一)
- java日志组件logback、slf4j的介绍及配置使用方法(二)
- Nuplayer 中的Ahandler 分析
- eclipse中用空格(space)代替"制表符(tab)的设置
- Red5的一般客户端连接各个事件的触发顺序
- Linux安装mysql——源码安装
- Red5研究
- flex 的换行
- gdb:不退出程序的情况下打印函数中的局部变量
- 如何为eclipse中的文件设置默认编码(转)
- red5 disconnect方法
- MyEclipse10.0 采用插件方式安装 SVN
- MyEclipse10.0 SVN