[*] 会话控制
This commit is contained in:
@@ -121,6 +121,14 @@ public interface Constant {
|
|||||||
* 媒体类型
|
* 媒体类型
|
||||||
*/
|
*/
|
||||||
String KIND = "kind";
|
String KIND = "kind";
|
||||||
|
/**
|
||||||
|
* 声音
|
||||||
|
*/
|
||||||
|
String AUDIO = "audio";
|
||||||
|
/**
|
||||||
|
* 视频
|
||||||
|
*/
|
||||||
|
String VIDEO = "video";
|
||||||
/**
|
/**
|
||||||
* 索引
|
* 索引
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -21,7 +21,9 @@ import com.acgist.taoyao.signal.protocol.ProtocolSessionAdapter;
|
|||||||
@Description(
|
@Description(
|
||||||
body = """
|
body = """
|
||||||
{
|
{
|
||||||
"clientId": "接收者ID"
|
"clientId": "接收者ID",
|
||||||
|
"audio" : 是否需要声音(true|false),
|
||||||
|
"video" : 是否需要视频(true|false)
|
||||||
}
|
}
|
||||||
""",
|
""",
|
||||||
flow = {
|
flow = {
|
||||||
@@ -52,7 +54,9 @@ public class SessionCallProtocol extends ProtocolSessionAdapter {
|
|||||||
callMessage.setBody(Map.of(
|
callMessage.setBody(Map.of(
|
||||||
Constant.NAME, client.status().getName(),
|
Constant.NAME, client.status().getName(),
|
||||||
Constant.CLIENT_ID, client.clientId(),
|
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);
|
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