[*] 会话控制
This commit is contained in:
@@ -121,6 +121,14 @@ public interface Constant {
|
||||
* 媒体类型
|
||||
*/
|
||||
String KIND = "kind";
|
||||
/**
|
||||
* 声音
|
||||
*/
|
||||
String AUDIO = "audio";
|
||||
/**
|
||||
* 视频
|
||||
*/
|
||||
String VIDEO = "video";
|
||||
/**
|
||||
* 索引
|
||||
*/
|
||||
|
||||
@@ -21,7 +21,9 @@ import com.acgist.taoyao.signal.protocol.ProtocolSessionAdapter;
|
||||
@Description(
|
||||
body = """
|
||||
{
|
||||
"clientId": "接收者ID"
|
||||
"clientId": "接收者ID",
|
||||
"audio" : 是否需要声音(true|false),
|
||||
"video" : 是否需要视频(true|false)
|
||||
}
|
||||
""",
|
||||
flow = {
|
||||
@@ -52,7 +54,9 @@ public class SessionCallProtocol extends ProtocolSessionAdapter {
|
||||
callMessage.setBody(Map.of(
|
||||
Constant.NAME, client.status().getName(),
|
||||
Constant.CLIENT_ID, client.clientId(),
|
||||
Constant.SESSION_ID, session.getId()
|
||||
Constant.SESSION_ID, session.getId(),
|
||||
Constant.AUDIO, MapUtils.get(body, Constant.AUDIO),
|
||||
Constant.VIDEO, MapUtils.get(body, Constant.VIDEO)
|
||||
));
|
||||
target.push(callMessage);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.acgist.taoyao.signal.protocol.session;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import com.acgist.taoyao.boot.annotation.Description;
|
||||
import com.acgist.taoyao.boot.annotation.Protocol;
|
||||
import com.acgist.taoyao.boot.model.Message;
|
||||
import com.acgist.taoyao.signal.client.Client;
|
||||
import com.acgist.taoyao.signal.client.ClientType;
|
||||
import com.acgist.taoyao.signal.party.session.Session;
|
||||
import com.acgist.taoyao.signal.protocol.ProtocolSessionAdapter;
|
||||
|
||||
/**
|
||||
* 暂停媒体信令
|
||||
*
|
||||
* @author acgist
|
||||
*/
|
||||
@Protocol
|
||||
@Description(
|
||||
body = """
|
||||
{
|
||||
"sessionId": "会话ID",
|
||||
"type" : "媒体类型(audio|voice)"
|
||||
}
|
||||
""",
|
||||
flow = "终端->信令服务->终端"
|
||||
)
|
||||
public class SessionPauseProtocol extends ProtocolSessionAdapter {
|
||||
|
||||
public static final String SIGNAL = "session::pause";
|
||||
|
||||
public SessionPauseProtocol() {
|
||||
super("暂停媒体信令", SIGNAL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(String clientId, ClientType clientType, Session session, Client client, Message message, Map<String, Object> body) {
|
||||
session.pushRemote(clientId, message);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.acgist.taoyao.signal.protocol.session;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import com.acgist.taoyao.boot.annotation.Description;
|
||||
import com.acgist.taoyao.boot.annotation.Protocol;
|
||||
import com.acgist.taoyao.boot.model.Message;
|
||||
import com.acgist.taoyao.signal.client.Client;
|
||||
import com.acgist.taoyao.signal.client.ClientType;
|
||||
import com.acgist.taoyao.signal.party.session.Session;
|
||||
import com.acgist.taoyao.signal.protocol.ProtocolSessionAdapter;
|
||||
|
||||
/**
|
||||
* 恢复媒体信令
|
||||
*
|
||||
* @author acgist
|
||||
*/
|
||||
@Protocol
|
||||
@Description(
|
||||
body = """
|
||||
{
|
||||
"sessionId": "会话ID",
|
||||
"type" : "媒体类型(audio|voice)"
|
||||
}
|
||||
""",
|
||||
flow = "终端->信令服务->终端"
|
||||
)
|
||||
public class SessionResumeProtocol extends ProtocolSessionAdapter {
|
||||
|
||||
public static final String SIGNAL = "session::resume";
|
||||
|
||||
public SessionResumeProtocol() {
|
||||
super("恢复媒体信令", SIGNAL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(String clientId, ClientType clientType, Session session, Client client, Message message, Map<String, Object> body) {
|
||||
session.pushRemote(clientId, message);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user