李勇

第三方消息通道控制加入到课堂管理模块

此 diff 太大无法显示。
... ... @@ -17,7 +17,7 @@ import VideoApe from 'apes/VideoApe';
import AudioApe from 'apes/AudioApe';
import DocApe from 'apes/DocApe';
import WhiteBoardApe from 'apes/WhiteBoardApe';
import ThirdMessage from 'apes/ThirdMessage';
import EngineUtils from "EngineUtils";
import GlobalConfig from 'GlobalConfig';
import ApeConsts from 'apes/ApeConsts';
... ... @@ -29,7 +29,7 @@ import MediaModule from 'apes/MediaModule';
import UTF8 from 'utf-8';
let loger = Loger.getLoger('McuClient');
let _sdkInfo = {"version": "v1.29.1.20170601", "author": "www.3mang.com"};
let _sdkInfo = {"version": "v1.29.2.20170601", "author": "www.3mang.com"};
//APE
let _sass;
... ... @@ -42,7 +42,6 @@ let _audio_ape;
let _doc_ape;
let _whiteboard_ape;
let _recordPlayback;
let _thirdMessage;
//MCUClient 外部实例化主类
export default class MessageEntrance extends Emiter {
... ... @@ -62,9 +61,6 @@ export default class MessageEntrance extends Emiter {
//全局的Error处理
this.on(MessageTypes.MCU_ERROR, this._mcuErrorHandler.bind(this));
//
_thirdMessage=new ThirdMessage();
// Sass平台层
_sass = Sass;
_sass.on('*', (type, data) => this._emit(type, data));
... ...
... ... @@ -4,6 +4,7 @@
import Ape from './Ape';
import ApeConsts from './ApeConsts';
import ThirdMessage from './ThirdMessage';
import MessageTypes from 'MessageTypes';
import pdu from 'pdus';
import { Zlib } from 'zlibjs/bin/zlib.min';
... ... @@ -26,6 +27,10 @@ class ConferApe extends Ape {
this.rosters = {};//用户列表
this.timerCounter = new TimerCounter();//计时器
//第三方消息控制 parent和Iframe直接的通讯
this.thirdMessage=new ThirdMessage();
this.thirdMessage.on(ThirdMessage.RECIVE_MESSAGE,this.onThirdReciveParentMessage.bind(this));
// Ape Models
this.registerKey(this._session_id, this._session_name, this._session_tag, new ArrayBuffer);
... ... @@ -635,6 +640,10 @@ class ConferApe extends Ape {
}
//-------------第三方消息------------------------------
//收到父级页面的消息,需要广播发送出去
onThirdReciveParentMessage(_msg){
loger.log('收到页面的消息->广播给其他模块->',_msg);
}
//发送第三方广播消息
sendThirdBroadcastData(_param){
loger.log("发送第三方广播消息->",_param);
... ...
... ... @@ -7,26 +7,33 @@ class ThirdMessage extends Emiter{
constructor(){
super();
// 初始化消息通道
this.messenger = new Messenger('xuedianyunIframe', 'ParentMessengerChannel');
this.messenger.addTarget(window.parent, 'parent');
this.messenger.listen(this.reciveThirdMessage.bind(this))
loger.log('ThirdMessage->');
this.messenger = new Messenger(ThirdMessage.IFRAME_MESSAGE_ID, ThirdMessage.PARENT_MESAGE_ID);
this.messenger.addTarget(window.parent, ThirdMessage.PARENT);
this.messenger.listen(this._reciveParentMessage.bind(this))
loger.log('ThirdMessage');
}
//发送消息
sendMessage(){
// 根据自己的业务组装对象
let jsonObj = {
//发送消息给父级页面
sendMessageToParent(_msg){
//// 根据自己的业务组装对象
/* let jsonObj = {
username: 'sdk',
message: 'sdk->hello world',
}
this.messenger.send(JSON.stringify(jsonObj));
this.messenger.send(JSON.stringify(jsonObj));*/
if(this.messenger){
this.messenger.send(_msg);
}
}
reciveThirdMessage(_data){
loger.log('来自父级页面的的消息:', _data);
// **发送前必须转JSON格式**
this.sendMessage();
//收到父级页面的消息
_reciveParentMessage(_msg){
loger.log('收到父级页面的的消息->', _msg);
this._emit(ThirdMessage.RECIVE_MESSAGE,_msg);
}
}
ThirdMessage.prototype.RECIVE_MESSAGE=ThirdMessage.RECIVE_MESSAGE='recive_message';
ThirdMessage.prototype.IFRAME_MESSAGE_ID=ThirdMessage.IFRAME_MESSAGE_ID='xuedianyunIframe';
ThirdMessage.prototype.PARENT_MESAGE_ID=ThirdMessage.PARENT_MESAGE_ID='ParentMessengerChannel';
ThirdMessage.prototype.PARENT=ThirdMessage.PARENT='parent';
export default ThirdMessage;
\ No newline at end of file
... ...