iPanel 笔记

一、消息

为什么会有消息之一说?

因为client和server时间的协议交互是异步的,也就是说不是立即返回的。所有对于请求试处理,一般都会使用消息通知来告诉上层做了什么事情,并且这些事情的结果是什么,比如,应用调用接口去执行setup请求,那么这个请求发送出去之后,client端会监听服务器的返回,得到返回之后,利用消息机制告诉应用层,setup的结果。一般来说,对于VOD应用层需要知道的过程有:setupplayclose。就是说,这些功能或者失败会直接影响到用户是否能够观看影片,比如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){

    ……

 

 

你可能感兴趣的:(C++)