iPanel 笔记

一、消息
为什么会有消息之一说?
因为client和server时间的协议交互是异步的,也就是说不是立即返回的。所有对于请求试处理,一般都会使用消息通知来告诉上层做了什么事情,并且这些事情的结果是什么,比如,应用调用接口去执行setup请求,那么这个请求发送出去之后,client端会监听服务器的返回,得到返回之后,利用消息机制告诉应用层,setup的结果。一般来说,对于VOD应用层需要知道的过程有:setup、play、close。就是说,这些功能或者失败会直接影响到用户是否能够观看影片,比如setup失败,这时影片就不能点播,需要提示用户相应的信息;play失败,这时影片就不能播放,也需要提示用户相应的信息;再如,播放完了,这时服务器断掉连接,也需要提示用户退出。
中间件消息的定义?
中间件中目前一共定义了四类消息,分别是:标准消息、键盘按键消息、遥控器按键消息以及系统消息,这些消息通过各自的消息通道发送给中间件或终端页面进行处理。其中,遥控器按键消息、系统消息都是ipanel自定义的消息。

标准消息:
指中间件终端通过某种协议(如http、rtsp等)与服务器进行交互时产生的一系列标准消息事件,如请求应答正常(200)、无法找到指定位置的资源(404)……这些消息与标准消息值的定义取值一致,一般在中间件内部进行处理,但为了方便用户了解相关状态,中间件按照一定规则将消息值进行转换然后发往页面,以便进行相关提示。
键盘按键消息:
单击键盘上的一个按键时,中间件就会收到一个CHAR型消息,即键盘按键消息。这些消息中间件会发送给页面处理。页面捕获到的消息值就是该键盘字符的ASSIC码。
遥控器按键消息:
单击摇控器上按键时,中间件便会收到遥控按键消息,即irkey消息。其中有些消息中间件会发送给页面进行处理,有些消息在中间件中就被处理销毁掉了,这些在irkey按键消息流程中有具体定义
系统消息:
中间件运行过程中会发生一系统列的功能性操作,如自动搜索、下载skin等等。系统消息就是用于对这些操作的状态结果进行通知,如锁频成功,自动搜索完成,skin下载失败等等,页面可以根据这些消息来提示用户,帮助用户做出判断选择。系统消息分为DVB消息与IPTV消息两个子类型。其中,DVB消息指的是与DVB数据相关的一类消息,其他的均归属为IPTV消息
页面js消息处理:
页面处理消息的步骤是:先注册消息处理函数,一旦有消息就会自动调用消息处理函数。在消息处理函数中通过js语句获取消息的相关参数,对具体信息按照各自的要求进行处理。消息处理完成后,便从消息处理函数中返回,其返回值将做为该类消息流程其下一步处理的依据。
目前,overlay、pagewidget、mainframe、eventframe四种窗口页面具备消息处理能力。
注册消息处理函数:

不同类型的消息拥有不同的消息通道,其注册用的js语句也不相同。注册时使用的处理函数名称是随意的,只要符合js自定义函数的命名规则。在当前的使用中,几类消息都注册了同一个消息处理函数。
1)char消息
document.onkeypress = eventproc1;
function eventproc1(eventobject){
……
}
2)irkey消息
document.onirkeypress = eventproc2; 或document.onkeydown = eventproc2;
两者同时调用后写的生效。
function eventproc2(eventobject){
……
}
3)system消息/标准消息
document.onsystemevent = eventproc3;
function eventproc3(eventobject){
……
}



【iPanel 笔记】

    推荐阅读