From be691965a636c6fbaab76747edc475b08b782e1f Mon Sep 17 00:00:00 2001 From: acgist <289547414@qq.com> Date: Sun, 27 Aug 2023 08:16:50 +0800 Subject: [PATCH] =?UTF-8?q?[*]=20=E6=97=A5=E5=B8=B8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../acgist/taoyao/client/signal/Taoyao.java | 1 + taoyao-client-web/src/components/Taoyao.js | 108 +++++++++--------- .../protocol/room/RoomExpelProtocol.java | 3 +- .../protocol/room/RoomInviteProtocol.java | 1 + .../protocol/room/RoomLeaveProtocol.java | 2 +- 5 files changed, 59 insertions(+), 56 deletions(-) diff --git a/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/signal/Taoyao.java b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/signal/Taoyao.java index 1322055..e53bb9a 100644 --- a/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/signal/Taoyao.java +++ b/taoyao-client-android/taoyao/client/src/main/java/com/acgist/taoyao/client/signal/Taoyao.java @@ -1061,6 +1061,7 @@ public final class Taoyao implements ITaoyao { private void roomInivte(Message message, Map body) { final String roomId = MapUtils.get(body, "roomId"); final String password = MapUtils.get(body, "password"); + // 安卓可以同时进入多个房间 this.roomEnter(roomId, password); } diff --git a/taoyao-client-web/src/components/Taoyao.js b/taoyao-client-web/src/components/Taoyao.js index 19056f9..62c8ce4 100644 --- a/taoyao-client-web/src/components/Taoyao.js +++ b/taoyao-client-web/src/components/Taoyao.js @@ -2391,59 +2391,6 @@ class Taoyao extends RemoteClient { } } - /** - * 踢出终端信令 - * - * @param {*} clientId 终端ID - */ - roomExpel(clientId) { - const me = this; - me.push(protocol.buildMessage("room::expel", { - roomId: me.roomId, - clientId, - })); - } - - /** - * 踢出终端信令 - * - * @param {*} message 消息 - */ - async defaultRoomExpel(message) { - const me = this; - me.roomLeave(); - } - - /** - * 邀请终端 - * - * @param {*} clientId 终端ID - */ - roomInvite(clientId) { - const me = this; - me.push(protocol.buildMessage("room::invite", { - roomId: me.roomId, - clientId, - })); - } - - /** - * 邀请终端信令 - * - * @param {*} message 消息 - */ - async defaultRoomInvite(message) { - const me = this; - // 默认自动进入:如果需要确认使用回调函数重写 - const { roomId, password } = message.body; - if(me.roomId) { - this.callbackError("已经进入房间拒绝邀请"); - return; - } - await me.roomEnter(roomId, password); - await me.mediaProduce(); - } - /** * 媒体回调 * @@ -2987,6 +2934,61 @@ class Taoyao extends RemoteClient { } } + /** + * 踢出房间信令 + * + * @param {*} clientId 终端ID + */ + roomExpel(clientId) { + this.push(protocol.buildMessage("room::expel", { + roomId: this.roomId, + clientId, + })); + } + + /** + * 踢出房间信令 + * + * @param {*} message 信令消息 + */ + async defaultRoomExpel(message) { + console.debug("收到提出房间信令", message); + this.roomLeave(); + } + + /** + * 邀请终端信令 + * + * @param {*} clientId 终端ID + */ + roomInvite(clientId) { + this.push(protocol.buildMessage("room::invite", { + roomId: this.roomId, + clientId, + })); + } + + /** + * 邀请终端信令 + * + * @param {*} message 信令消息 + */ + async defaultRoomInvite(message) { + // 默认自动进入:如果需要确认使用回调函数重写 + const { + roomId, + password + } = message.body; + // H5只能同时进入一个房间 + if(this.roomId) { + this.callbackError("终端拒绝房间邀请", roomId); + return; + } + console.debug("房间邀请终端", roomId); + await this.roomEnter(roomId, password); + await this.mediaProduce(); + } + /** * 离开房间信令 */ diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomExpelProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomExpelProtocol.java index 8f41e21..d665733 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomExpelProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomExpelProtocol.java @@ -19,6 +19,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter; */ @Protocol @Description( + memo = "终端收到信令以后调用离开房间信令离开房间,没有实现强制在服务端提出。", body = """ { "roomId" : "房间ID", @@ -40,8 +41,6 @@ public class RoomExpelProtocol extends ProtocolRoomAdapter { if(clientType.isClient()) { final String expelClientId = MapUtils.get(body, Constant.CLIENT_ID); room.unicast(expelClientId, message); - // 如果需要强制提出 -// room.leave(this.clientManager.clients(expelClientId)); } else { this.logNoAdapter(clientType); } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomInviteProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomInviteProtocol.java index 59bdd1d..c22ed61 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomInviteProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomInviteProtocol.java @@ -19,6 +19,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter; */ @Protocol @Description( + memo = "终端收到信令以后调用进入房间信令进入房间", body = """ { "roomId" : "房间ID", diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomLeaveProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomLeaveProtocol.java index 115350a..8f6296a 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomLeaveProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomLeaveProtocol.java @@ -47,7 +47,7 @@ public class RoomLeaveProtocol extends ProtocolRoomAdapter implements Applicatio @Async @Override public void onApplicationEvent(RoomLeaveEvent event) { - final Room room = event.getRoom(); + final Room room = event.getRoom(); final Client client = event.getClient(); final Map body = Map.of( Constant.ROOM_ID, room.getRoomId(),