Revert "房间信息返回token"

This reverts commit f52947aec1.
This commit is contained in:
hunan 2022-08-03 16:03:08 +08:00
parent f52947aec1
commit 96ac3d5b8d
6 changed files with 17 additions and 52 deletions

View File

@ -1,5 +1,7 @@
package com.zhangshu.chat.demo.service; package com.zhangshu.chat.demo.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.zhangshu.chat.demo.config.AgoraProperties; import com.zhangshu.chat.demo.config.AgoraProperties;
import com.zhangshu.chat.demo.constant.ERoomUserType; import com.zhangshu.chat.demo.constant.ERoomUserType;
import com.zhangshu.chat.demo.dto.AgoraChannelEventDto; import com.zhangshu.chat.demo.dto.AgoraChannelEventDto;
@ -12,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
@Service @Service
@ -24,6 +27,10 @@ public class EventServiceImpl implements EventService {
@Autowired @Autowired
UserMapper userMapper; UserMapper userMapper;
<T> T mapToBean(Map<String, Object> map, Class<T> targetClass) {
return BeanUtil.mapToBean(map, targetClass, false, CopyOptions.create());
}
@Override @Override
public void agora(AgoraEventDto dto) { public void agora(AgoraEventDto dto) {
switch (dto.getEventType()) { switch (dto.getEventType()) {

View File

@ -27,8 +27,7 @@ public class LoginServiceImpl implements LoginService {
JwtProvider jwtProvider; JwtProvider jwtProvider;
@Autowired @Autowired
AuthenticationManager authenticationManager; AuthenticationManager authenticationManager;
@Autowired
RoomCache roomCache;
@Override @Override
public LoginVo login(LoginDto dto) { public LoginVo login(LoginDto dto) {
@ -54,22 +53,12 @@ public class LoginServiceImpl implements LoginService {
public LoginVo agoraToken(Authentication authentication, String channelName, int role) { public LoginVo agoraToken(Authentication authentication, String channelName, int role) {
RtcTokenBuilder2.Role role2 = role == 1 ? RtcTokenBuilder2.Role.ROLE_PUBLISHER : RtcTokenBuilder2.Role.ROLE_SUBSCRIBER; RtcTokenBuilder2.Role role2 = role == 1 ? RtcTokenBuilder2.Role.ROLE_PUBLISHER : RtcTokenBuilder2.Role.ROLE_SUBSCRIBER;
UserDetailsImpl userInfo = (UserDetailsImpl) authentication.getPrincipal(); UserDetailsImpl userInfo = (UserDetailsImpl) authentication.getPrincipal();
RtcTokenBuilder2 token = new RtcTokenBuilder2();
String token = new RtcTokenBuilder2().buildTokenWithUid( String result = token.buildTokenWithUid(agoraProperties.getAppId(), agoraProperties.getAppCertificate(),
agoraProperties.getAppId(), channelName, userInfo.getId().intValue(), role2,
agoraProperties.getAppCertificate(), agoraProperties.getTokenExpiration(), agoraProperties.getPrivilegeExpiration());
channelName, return LoginVo.builder()
userInfo.getId().intValue(), .token(result).build();
role2,
agoraProperties.getTokenExpiration(),
agoraProperties.getPrivilegeExpiration()
);
// cache roomId and it's token
roomCache.tokenMapping(channelName, token);
return LoginVo.builder().token(token).build();
} }

View File

@ -19,19 +19,6 @@ public class RoomCache {
* 正在创建 * 正在创建
*/ */
private final Cache<String, Room> roomCreatingCache = CacheUtil.newFIFOCache(4); private final Cache<String, Room> roomCreatingCache = CacheUtil.newFIFOCache(4);
/**
* roomId -> agoraToken 映射
*/
private final Cache<String, String> roomTokenCache = CacheUtil.newFIFOCache(4);
public void tokenMapping(String roomId, String token) {
roomTokenCache.put(roomId, token);
}
public String tokenMapping(String roomId) {
return roomTokenCache.get(roomId);
}
public List<Room> list() { public List<Room> list() {
List<Room> resp = new ArrayList<>(roomCache.size()); List<Room> resp = new ArrayList<>(roomCache.size());

View File

@ -11,32 +11,21 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;
@Slf4j @Slf4j
@Service @Service
public class RoomServiceImpl implements RoomService { public class RoomServiceImpl implements RoomService {
@Autowired @Autowired
RoomCache roomCache; RoomCache roomCache;
@Override @Override
public CommonPageResult<RoomVo> page(PageDto pageDto) { public CommonPageResult<RoomVo> page(PageDto pageDto) {
List<RoomVo> page = RoomConvert.INSTANCE.convert(roomCache.list()); return CommonPageResult.of(RoomConvert.INSTANCE.convert(roomCache.list()));
for (RoomVo roomVo : page) {
setToken(roomVo.getId(), roomVo::setToken);
}
return CommonPageResult.of(page);
} }
@Override @Override
public RoomDetailVo detail(String id) { public RoomDetailVo detail(String id) {
RoomDetailVo vo = RoomConvert.INSTANCE.convertDetail(roomCache.get(id)); return RoomConvert.INSTANCE.convertDetail(roomCache.get(id));
setToken(vo.getId(), vo::setToken);
return vo;
} }
@Override @Override
@ -50,8 +39,4 @@ public class RoomServiceImpl implements RoomService {
return roomCache.createSuccess(roomId); return roomCache.createSuccess(roomId);
} }
private void setToken(String id, Consumer<String> setter) {
String token = roomCache.tokenMapping(id);
setter.accept(token);
}
} }

View File

@ -9,6 +9,5 @@ import java.util.List;
public class RoomDetailVo { public class RoomDetailVo {
private String id; private String id;
private String name; private String name;
private String token;
private List<RoomUserVo> userList; private List<RoomUserVo> userList;
} }

View File

@ -6,6 +6,4 @@ import lombok.Data;
public class RoomVo { public class RoomVo {
private String id; private String id;
private String name; private String name;
private String token;
} }