回调流程

参考:Red5的一般客户端连接各个事件的触发顺序,经验证实际过程如下:

程序开始(在RED5启动的时候会自动去启动APP,从而触发以上事件)

Start:MyChatRoom
appStart:MyChatRoom

第一个客户端连接(MyChatRoom/lobby/roomA)

Start:/lobby
roomStart:/lobby
Start:/lobby/roomA
roomStart:/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/

roomAroomDisconnect:1
disconnect:/lobby
roomLeave:1:/lobby

appDisconnect:1
disconnect:
appLeave:1:

第一个客户端离开

roomDisconnect:0
disconnect:/lobby/roomA
roomLeave:0:/lobby/roomA

stop:/lobby/roomA
roomStop:/lobby/roomA

roomDisconnect:0
disconnect:/lobby
roomLeave:0:/lobby

stop:/lobby
roomStop:/lobby

appDisconnect
disconnect:
appLeave:0:

程序退出

stop
appStop:

注意事项

1. 在我第一次测试时,我继承的Adapter实现了connect、appConnect、roomConnect三个方法。发现无论何时,程序只会回调connect而不会回调另外两个。查看connect的代码和注释发现若要区分地调用appConnet和roomConnect,就不需要实现connect函数,仅实现后两者就够了。否则,Red5只会调用connect,而传入的参数scope中有区别。

  对disconnect、appDisconnect、roomDisconnect同理。

  需要强调这一点有些重要。因为我在使用Red5的挑战认证(CRAM)例子的时候,发现当我在appStart中把例子作为listener注册到我的应用里面,应用程序根本不会回调例子的appConnect,解决方法就是这一点。应用程序把事件分发给了connect而不是appConnect。

  还要说的是,如果我们把CRAM的例子改为connect而不是appConnect,那可能需要对scope做一些区别。只有scope的值为app name的时候才执行例子中的代码。否则可能会多次执行认证过程。(未验证)

2. 我的程序中测试结果跟参考的博文在start和appStart、stop和appStop上的调用顺序有所差异,原因是什么暂时不了解。先记录下面线索:

  1. 执行线程是一直的,如日志

    [WARN] [Red5_Scheduler_Worker-10] org.red5.core.Application - stop scope Name: test
    [WARN] [Red5_Scheduler_Worker-10] org.red5.core.Application - roomStop

  2. 我继承的父类是MultiThreadApplicationAdapter,被我参考的博文使用的是ApplicationAdapter
  3. 版本号可能不一样,我使用1.0.5,对方使用的版本未知,看其发文的时间显然应该是比我早得多。

Red5 项目的流事件回调流程和注意事项的更多相关文章

  1. MQTT事件回调流程

    TLS 如下强调: 1.每个IOT设备应该有一对独有的公钥/私钥 2.SERVER的认证通过SERVER的"root certificate" SSL产生过程: $ openssl ...

  2. Android Multimedia框架总结(十二)CodeC部分之OMXCodec与OMX事件回调流程

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52629449 前言:上篇文中分析 ...

  3. Android按键事件传递流程(二)

    5    应用层如何从Framework层接收按键事件 由3.2和4.5.4节可知,当InputDispatcher通过服务端管道向socket文件描述符发送消息后,epoll机制监听到了I/O事件, ...

  4. 细说javascripe事件传播流程

    当我们使用js时,经常会遇到事件传播流程的问题,下面我说一下我的观点. 在js触发某个事件时会相应生成一个事件对象,而这个事件对象则会根据DOM事件流的方向进传递,而传递的顺序如下图所示: 事件对象会 ...

  5. ZT ANDROID jni 中的事件回调机制JNIenv的使用 2012-09-10 12:53:01

    ANDROID jni 中的事件回调机制JNIenv的使用 2012-09-10 12:53:01 分类: 嵌入式 android framework 里java调用native,使用JNI机制,ja ...

  6. 「SAP技术」A项目关联公司间退货STO流程

    [SAP技术]A项目关联公司间退货STO流程 1)创建公司间退货STO单据. 如下图示的公司间退货STO 4500000572, 2),VL10B, 创建交货单. 如下图交货单号:80044918, ...

  7. JS中的事件传播流程

    JS中的事件传播流程 1,Javascript与HTML之间的交互是通过事件实现的. 事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间. 可以使用侦听器来预定事件,以便事件发生时执行相应代码. 2 ...

  8. 用block做事件回调来简化代码,提高开发效率

       我们在自定义view的时候,通常要考虑view的封装复用,所以如何把view的事件回调给Controller就是个需要好好考虑的问题, 一般来说,可选的方式主要有target-action和de ...

  9. Red5 1.0.0RC1 集成到tomcat6.0.35中运行&部署新的red5项目到tomcat中

    1.下载red5-war-1.0-RC1.zip 解压之得到 ROOT.war 文件. 2.处理tomcat. 下载apache-tomcat-6.0.35-windows-x86.zip包,解压到你 ...

随机推荐

  1. 04_天气查询_JAX-WS方式_服务端

    [简述] WebService的Java实现共有三种方式:JAX-WS(JAX-RPC).JAXM&SAAJ.JAX-RS. JAX-WS: JAX-WS  的全称为 Java API for ...

  2. bzoj1068:[SCOI2007]压缩

    思路:区间dp,设状态f[l][r][bo]表示区间[l,r]的答案,bo=1表示该区间可以放M也可以不放M,bo=0表示该区间不能放M,并且对于任意一个状态f,l和l-1之间均有一个M,于是就可以进 ...

  3. wamp集成环境php多版本搭建(php5.5,php5.6,php7.0.6)

        首先需要搭建的版本可以在php官方(http://windows.php.net/download)下载对应的版本,X86对应的是32位操作系统,X64对应的是64位操作系统.    1:下载 ...

  4. H5小内容(一)

    HTML5目前最新的规范(标准)是2014年10月推出   2005年左右出现HTML5版本(非标准)     W3C组织(两个组织定义H5规范)   学习(研究)HTML5是学习未来(将来主流)   ...

  5. js在本地预览图片

    移动web <body> <form enctype="multipart/form-data" name="form1"> 上传文件: ...

  6. MyEclipse过期激活方法

    如果已经过期会提示,进行购买.重新激活和退出,我们选择重新激活. 打开浏览器,地址栏输入key.858game.com,然后输入名称,在线获得MyEclipse的激活码. 输入Sumscripter: ...

  7. Ajax编程相对路径与绝对路径

    http://www.worlduc.com/blog2012.aspx?bid=16946309 ajax同一域名调用采用相对路径 var url = 'QuerySingleDataByField ...

  8. apache asp.net

    http://www.apache.org/dist/httpd/ http://server.it168.com/server/2005-10-11/20051011027201.shtml htt ...

  9. IAR编译ZStack-CC2530为可下载运行的HEX文件的正确配置

    转自IAR编译ZStack-CC2530为可下载运行的HEX文件的正确配置 IAR编译ZStack-CC2530为可下载运行的HEX文件的正确配置:        1.正确配置输出文件格式:菜单选择P ...

  10. Jar包可执行??

    第一次听说,jvm加载包,必须rwx么?