[*] js
This commit is contained in:
@@ -26,5 +26,21 @@ public class Meeting {
|
||||
*/
|
||||
@Schema(title = "终端会话标识列表", description = "终端会话标识列表")
|
||||
private List<String> sns;
|
||||
/**
|
||||
* 创建终端标识
|
||||
*/
|
||||
@Schema(title = "创建终端标识", description = "创建终端标识")
|
||||
private String creator;
|
||||
|
||||
/**
|
||||
* 新增终端会话标识
|
||||
*
|
||||
* @param sn 终端会话标识
|
||||
*/
|
||||
public void addSn(String sn) {
|
||||
synchronized (this.sns) {
|
||||
this.sns.add(sn);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,8 +3,11 @@ package com.acgist.taoyao.meeting;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.acgist.taoyao.boot.service.IdService;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
@@ -16,6 +19,9 @@ import lombok.extern.slf4j.Slf4j;
|
||||
@Service
|
||||
public class MeetingManager {
|
||||
|
||||
@Autowired
|
||||
private IdService idService;
|
||||
|
||||
/**
|
||||
* 会议列表
|
||||
*/
|
||||
@@ -49,5 +55,23 @@ public class MeetingManager {
|
||||
final Meeting meeting = this.meeting(id);
|
||||
return meeting == null ? List.of() : meeting.getSns();
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建会议
|
||||
*
|
||||
* @param sn 创建会议终端标识
|
||||
*
|
||||
* @return 会议信息
|
||||
*/
|
||||
public Meeting create(String sn) {
|
||||
final Meeting meeting = new Meeting();
|
||||
meeting.setId(this.idService.buildIdToString());
|
||||
meeting.setSns(new CopyOnWriteArrayList<>());
|
||||
meeting.setCreator(sn);
|
||||
meeting.addSn(sn);
|
||||
this.meetings.add(meeting);
|
||||
log.info("创建会议:{}", meeting.getId());
|
||||
return meeting;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6,32 +6,34 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.acgist.taoyao.boot.model.Message;
|
||||
import com.acgist.taoyao.meeting.Meeting;
|
||||
import com.acgist.taoyao.meeting.MeetingManager;
|
||||
import com.acgist.taoyao.signal.client.ClientSession;
|
||||
import com.acgist.taoyao.signal.client.ClientSessionManager;
|
||||
import com.acgist.taoyao.signal.event.meeting.MeetingCreateEvent;
|
||||
import com.acgist.taoyao.signal.listener.ApplicationListenerAdapter;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 创建会议监听
|
||||
*
|
||||
* @author acgist
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class MeetingCreateListener extends ApplicationListenerAdapter<MeetingCreateEvent> {
|
||||
|
||||
@Autowired
|
||||
private MeetingManager meetingManager;
|
||||
@Autowired
|
||||
private ClientSessionManager clientSessionManager;
|
||||
|
||||
@Override
|
||||
public void onApplicationEvent(MeetingCreateEvent event) {
|
||||
// this.meetingManager.create();
|
||||
final ClientSession session = event.getSession();
|
||||
final Meeting meeting = this.meetingManager.create(session.sn());
|
||||
final Message message = event.getMessage();
|
||||
message.setBody(Map.of("id", "1234"));
|
||||
session.push(message);
|
||||
message.setBody(Map.of("id", meeting.getId()));
|
||||
// 广播:不改ID触发创建终端事件回调
|
||||
this.clientSessionManager.broadcast(message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user