[*] 日常优化

This commit is contained in:
acgist
2023-09-04 07:53:00 +08:00
parent 70f11e92a0
commit 8a667bb6cf

View File

@@ -861,20 +861,14 @@ class Taoyao extends RemoteClient {
case "media::video::orientation::change": case "media::video::orientation::change":
me.defaultMediaVideoOrientationChange(message); me.defaultMediaVideoOrientationChange(message);
break; break;
case "session::call": case "platform::error":
me.defaultSessionCall(message); me.platformError(message);
break; break;
case "session::close": case "platform::reboot":
me.defaultSessionClose(message); me.defaultPlatformReboot(message);
break; break;
case "session::exchange": case "platform::shutdown":
me.defaultSessionExchange(message); me.defaultPlatformShutdown(message);
break;
case "session::pause":
me.defaultSessionPause(message);
break;
case "session::resume":
me.defaultSessionResume(message);
break; break;
case "room::broadcast": case "room::broadcast":
me.defaultRoomBroadcast(message); me.defaultRoomBroadcast(message);
@@ -900,14 +894,20 @@ class Taoyao extends RemoteClient {
case "room::leave": case "room::leave":
me.defaultRoomLeave(message); me.defaultRoomLeave(message);
break; break;
case "platform::error": case "session::call":
me.callbackError(message); me.defaultSessionCall(message);
break; break;
case "platform::reboot": case "session::close":
me.defaultPlatformReboot(message); me.defaultSessionClose(message);
break; break;
case "platform::shutdown": case "session::exchange":
me.defaultPlatformShutdown(message); me.defaultSessionExchange(message);
break;
case "session::pause":
me.defaultSessionPause(message);
break;
case "session::resume":
me.defaultSessionResume(message);
break; break;
} }
} }
@@ -1537,11 +1537,11 @@ class Taoyao extends RemoteClient {
const me = this; const me = this;
const consumer = me.consumers.get(consumerId); const consumer = me.consumers.get(consumerId);
if(!consumer) { if(!consumer) {
me.callbackError("请求关键帧消费者无效"); me.platformError("请求关键帧消费者无效");
return; return;
} }
if(consumer.kind !== "video") { if(consumer.kind !== "video") {
me.callbackError("只能请求视频消费者关键帧"); me.platformError("只能请求视频消费者关键帧");
return; return;
} }
me.push(protocol.buildMessage("media::consumer::request::key::frame", { me.push(protocol.buildMessage("media::consumer::request::key::frame", {
@@ -1612,11 +1612,11 @@ class Taoyao extends RemoteClient {
const me = this; const me = this;
const consumer = me.consumers.get(consumerId); const consumer = me.consumers.get(consumerId);
if(!consumer) { if(!consumer) {
me.callbackError("修改最佳空间层和时间层消费者无效"); me.platformError("修改最佳空间层和时间层消费者无效");
return; return;
} }
if(consumer.kind !== "video") { if(consumer.kind !== "video") {
me.callbackError("只能修改视频消费者最佳空间层和时间层"); me.platformError("只能修改视频消费者最佳空间层和时间层");
return; return;
} }
me.push(protocol.buildMessage("media::consumer::set::preferred::layers", { me.push(protocol.buildMessage("media::consumer::set::preferred::layers", {
@@ -1637,7 +1637,7 @@ class Taoyao extends RemoteClient {
const me = this; const me = this;
const consumer = me.consumers.get(consumerId); const consumer = me.consumers.get(consumerId);
if(!consumer) { if(!consumer) {
me.callbackError("设置消费者优先级消费者无效"); me.platformError("设置消费者优先级消费者无效");
return; return;
} }
me.push(protocol.buildMessage("media::consumer::set::priority", { me.push(protocol.buildMessage("media::consumer::set::priority", {
@@ -1996,37 +1996,6 @@ class Taoyao extends RemoteClient {
console.debug("平台重启", message); console.debug("平台重启", message);
} }
/**
* 执行命令信令
*
* @param {*} script 命令
*
* @returns 响应
*/
async platformScript(script) {
return await this.request(protocol.buildMessage("platform::script", {
script
}));
}
/**
* 关闭平台信令
*
* @returns 响应
*/
async platformShutdown() {
return await this.request(protocol.buildMessage("platform::shutdown", {}));
}
/**
* 关闭平台信令
*
* @param {*} message 信令消息
*/
defaultPlatformShutdown(message) {
console.debug("平台关闭", message);
}
/** /**
* 消费媒体信令 * 消费媒体信令
* *
@@ -2035,7 +2004,7 @@ class Taoyao extends RemoteClient {
mediaConsume(producerId) { mediaConsume(producerId) {
const me = this; const me = this;
if(!me.recvTransport) { if(!me.recvTransport) {
me.callbackError("没有连接接收通道"); me.platformError("没有连接接收通道");
return; return;
} }
me.push(protocol.buildMessage("media::consume", { me.push(protocol.buildMessage("media::consume", {
@@ -2129,7 +2098,7 @@ class Taoyao extends RemoteClient {
console.warn("远程终端没有实现代理", remoteClient); console.warn("远程终端没有实现代理", remoteClient);
} }
} catch (error) { } catch (error) {
me.callbackError("消费媒体异常", error); me.platformError("消费媒体异常", error);
} }
} }
@@ -2141,7 +2110,7 @@ class Taoyao extends RemoteClient {
mediaDataConsume(producerId) { mediaDataConsume(producerId) {
const me = this; const me = this;
if(!me.recvTransport) { if(!me.recvTransport) {
me.callbackError("没有连接接收通道"); me.platformError("没有连接接收通道");
return; return;
} }
me.push(protocol.buildMessage("media::data::consume", { me.push(protocol.buildMessage("media::data::consume", {
@@ -2234,11 +2203,12 @@ class Taoyao extends RemoteClient {
* @param {*} message 消息 * @param {*} message 消息
*/ */
defaultPlatformError(message) { defaultPlatformError(message) {
const me = this; const {
const { code } = message; code
} = message;
if (code === "3401") { if (code === "3401") {
// 没有授权直接关闭 // 没有授权直接关闭
me.closeAll(); this.closeAll();
} else { } else {
console.warn("平台异常", message); console.warn("平台异常", message);
} }
@@ -2267,15 +2237,17 @@ class Taoyao extends RemoteClient {
* @param {*} message 错误消息 * @param {*} message 错误消息
* @param {*} error 异常信息 * @param {*} error 异常信息
*/ */
callbackError(message, error) { platformError(message, error) {
const me = this; if (this.callback) {
if (me.callback) { let callbackMessage;
const callbackMessage = protocol.buildMessage("platform::error", { if(message instanceof Object) {
message callbackMessage = message;
}); } else {
callbackMessage = protocol.buildMessage("platform::error", {});
callbackMessage.code = "9999"; callbackMessage.code = "9999";
callbackMessage.message = message; callbackMessage.message = message;
me.callback(callbackMessage, error); }
this.callback(callbackMessage, error);
} else { } else {
if (error) { if (error) {
console.error("发生异常", message, error); console.error("发生异常", message, error);
@@ -2773,20 +2745,51 @@ class Taoyao extends RemoteClient {
} }
}); });
if (!audioEnabled && me.audioProduce) { if (!audioEnabled && me.audioProduce) {
me.callbackError("没有音频媒体设备"); me.platformError("没有音频媒体设备");
// 强制修改 // 强制修改
me.audioProduce = false; me.audioProduce = false;
} }
if (!videoEnabled && me.videoProduce) { if (!videoEnabled && me.videoProduce) {
me.callbackError("没有视频媒体设备"); me.platformError("没有视频媒体设备");
// 强制修改 // 强制修改
me.videoProduce = false; me.videoProduce = false;
} }
} else { } else {
me.callbackError("没有媒体权限"); me.platformError("没有媒体权限");
} }
} }
/**
* 执行命令信令
*
* @param {*} script 命令
*
* @returns 响应
*/
async platformScript(script) {
return await this.request(protocol.buildMessage("platform::script", {
script
}));
}
/**
* 关闭平台信令
*
* @returns 响应
*/
async platformShutdown() {
return await this.request(protocol.buildMessage("platform::shutdown", {}));
}
/**
* 关闭平台信令
*
* @param {*} message 信令消息
*/
defaultPlatformShutdown(message) {
console.debug("平台关闭", message);
}
/** /**
* 房间广播信令 * 房间广播信令
* *
@@ -2889,7 +2892,7 @@ class Taoyao extends RemoteClient {
*/ */
async roomCreate(room) { async roomCreate(room) {
if(this.roomId) { if(this.roomId) {
this.callbackError("终端已经进入房间"); this.platformError("终端已经进入房间");
return { return {
code : 9999, code : 9999,
message: "终端已经进入房间" message: "终端已经进入房间"
@@ -2929,7 +2932,7 @@ class Taoyao extends RemoteClient {
*/ */
async roomEnter(roomId, password) { async roomEnter(roomId, password) {
if(this.roomId) { if(this.roomId) {
this.callbackError("终端已经进入房间"); this.platformError("终端已经进入房间");
return { return {
code : 9999, code : 9999,
message: "终端已经进入房间", message: "终端已经进入房间",
@@ -2941,7 +2944,7 @@ class Taoyao extends RemoteClient {
})); }));
if(response.code !== SUCCESS_CODE) { if(response.code !== SUCCESS_CODE) {
this.roomId = null; this.roomId = null;
this.callbackError(response.message); this.platformError(response);
return response; return response;
} }
const routerRtpCapabilities = response.body.rtpCapabilities; const routerRtpCapabilities = response.body.rtpCapabilities;
@@ -2955,7 +2958,7 @@ class Taoyao extends RemoteClient {
})); }));
if(response.code !== SUCCESS_CODE) { if(response.code !== SUCCESS_CODE) {
this.roomId = null; this.roomId = null;
this.callbackError(response.message); this.platformError(response);
return response; return response;
} }
return response; return response;
@@ -3030,7 +3033,7 @@ class Taoyao extends RemoteClient {
} = message.body; } = message.body;
// H5只能同时进入一个房间 // H5只能同时进入一个房间
if(this.roomId) { if(this.roomId) {
this.callbackError("终端拒绝房间邀请", roomId); this.platformError("终端拒绝房间邀请");
return; return;
} }
console.debug("房间邀请终端", roomId); console.debug("房间邀请终端", roomId);
@@ -3101,7 +3104,7 @@ class Taoyao extends RemoteClient {
*/ */
async sessionCall(clientId, audio = true, video = true) { async sessionCall(clientId, audio = true, video = true) {
if (clientId == this.clientId) { if (clientId == this.clientId) {
this.callbackError("不能监控自己"); this.platformError("不能监控自己");
return; return;
} }
await this.checkDevice(); await this.checkDevice();
@@ -3114,7 +3117,7 @@ class Taoyao extends RemoteClient {
message message
} = response; } = response;
if(code !== SUCCESS_CODE) { if(code !== SUCCESS_CODE) {
this.callbackError(message); this.platformError(message);
return; return;
} }
const { const {