Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wecloud_im_server
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hewei
wecloud_im_server
Commits
829167de
Commit
829167de
authored
Apr 25, 2022
by
罗长华
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/feature-cluster' into feature-cluster
parents
88ecd616
051b3b6a
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
44 additions
and
26 deletions
+44
-26
core/src/main/java/com/wecloud/im/externalaccess/service/FriendService.java
+18
-1
core/src/main/java/com/wecloud/im/netty/handler/NettyApiRequest.java
+8
-8
core/src/main/java/com/wecloud/multimeet/service/impl/MultiMeetServiceImpl.java
+16
-15
core/src/main/java/com/wecloud/rtc/service/impl/RtcServiceImpl.java
+2
-2
No files found.
core/src/main/java/com/wecloud/im/externalaccess/service/FriendService.java
View file @
829167de
...
@@ -86,10 +86,27 @@ public class FriendService extends BaseServiceImpl<UserMapper, User> {
...
@@ -86,10 +86,27 @@ public class FriendService extends BaseServiceImpl<UserMapper, User> {
if
(
pageFriends
==
null
||
CollectionUtils
.
isEmpty
(
pageFriends
.
getRecords
()))
{
if
(
pageFriends
==
null
||
CollectionUtils
.
isEmpty
(
pageFriends
.
getRecords
()))
{
return
friendDtoList
;
return
friendDtoList
;
}
}
List
<
String
>
friendClientIds
=
pageFriends
.
getRecords
().
stream
().
map
(
ImFriendBaseDto:
:
getFriendClientId
).
collect
(
Collectors
.
toList
());
List
<
User
>
userList
=
userService
.
list
(
new
QueryWrapper
<
User
>().
lambda
()
.
in
(
User:
:
getId
,
friendClientIds
)
);
if
(
CollectionUtils
.
isEmpty
(
userList
))
{
return
friendDtoList
;
}
Map
<
String
,
User
>
userMap
=
Maps
.
newHashMap
();
for
(
User
user
:
userList
)
{
userMap
.
put
(
user
.
getId
().
toString
(),
user
);
}
for
(
ImFriendBaseDto
record
:
pageFriends
.
getRecords
())
{
for
(
ImFriendBaseDto
record
:
pageFriends
.
getRecords
())
{
FriendDto
friendDto
=
new
FriendDto
();
FriendDto
friendDto
=
new
FriendDto
();
BeanUtils
.
copyProperties
(
record
,
friendDto
);
BeanUtils
.
copyProperties
(
record
,
friendDto
);
User
user
=
userMap
.
get
(
record
.
getFriendClientId
());
if
(
user
!=
null
)
{
friendDto
.
setIdNumber
(
user
.
getIdNumber
());
friendDto
.
setHeadPortrait
(
user
.
getHeadPortrait
());
friendDto
.
setNickname
(
user
.
getNickname
());
}
friendDtoList
.
add
(
friendDto
);
friendDtoList
.
add
(
friendDto
);
}
}
return
friendDtoList
;
return
friendDtoList
;
...
...
core/src/main/java/com/wecloud/im/netty/handler/NettyApiRequest.java
View file @
829167de
...
@@ -164,14 +164,14 @@ public class NettyApiRequest {
...
@@ -164,14 +164,14 @@ public class NettyApiRequest {
appUserChannelsService
.
online
(
client
.
getId
(),
jwtToken
.
getPlatform
(),
(
NioSocketChannel
)
ctx
.
channel
());
appUserChannelsService
.
online
(
client
.
getId
(),
jwtToken
.
getPlatform
(),
(
NioSocketChannel
)
ctx
.
channel
());
// 发布客户端在线状态变化事件
// 发布客户端在线状态变化事件
Long
appId
=
app
.
getId
();
//
Long appId = app.getId();
String
clientId
=
client
.
getClientId
();
//
String clientId = client.getClientId();
Integer
platform
=
jwtToken
.
getPlatform
();
//
Integer platform = jwtToken.getPlatform();
long
time
=
System
.
currentTimeMillis
();
//
long time = System.currentTimeMillis();
String
clientIp
=
ctx
.
channel
().
remoteAddress
().
toString
();
//
String clientIp = ctx.channel().remoteAddress().toString();
ClientOnlineStatusChangeEvent
clientOnlineStatusChangeEvent
=
new
ClientOnlineStatusChangeEvent
(
appId
,
//
ClientOnlineStatusChangeEvent clientOnlineStatusChangeEvent = new ClientOnlineStatusChangeEvent(appId,
clientId
,
1
,
platform
,
time
,
clientIp
);
//
clientId, 1, platform, time, clientIp);
eventPublisher
.
publishEvent
(
clientOnlineStatusChangeEvent
);
//
eventPublisher.publishEvent(clientOnlineStatusChangeEvent);
//移除当前api处理handler, 不再参与长连接处理
//移除当前api处理handler, 不再参与长连接处理
ctx
.
pipeline
().
remove
(
"SingleHttpRequestHandler"
);
ctx
.
pipeline
().
remove
(
"SingleHttpRequestHandler"
);
...
...
core/src/main/java/com/wecloud/multimeet/service/impl/MultiMeetServiceImpl.java
View file @
829167de
...
@@ -75,6 +75,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
...
@@ -75,6 +75,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
}
}
List
<
RoomMemberDto
>
members
=
Lists
.
newArrayList
();
List
<
RoomMemberDto
>
members
=
Lists
.
newArrayList
();
ImMultiRtcRoom
rtcRoom
=
imMultiRtcRoomService
.
getCachedMultiRtcRoom
(
currentClient
.
getFkAppid
(),
param
.
getRoomId
());
ImMultiRtcRoom
rtcRoom
=
imMultiRtcRoomService
.
getCachedMultiRtcRoom
(
currentClient
.
getFkAppid
(),
param
.
getRoomId
());
List
<
ImMultiRtcRoomMember
>
roomMembersToSave
=
Lists
.
newArrayList
();
if
(
rtcRoom
==
null
)
{
if
(
rtcRoom
==
null
)
{
rtcRoom
=
new
ImMultiRtcRoom
();
rtcRoom
=
new
ImMultiRtcRoom
();
rtcRoom
.
setId
(
SnowflakeUtil
.
getId
());
rtcRoom
.
setId
(
SnowflakeUtil
.
getId
());
...
@@ -84,7 +85,21 @@ public class MultiMeetServiceImpl implements MultiMeetService {
...
@@ -84,7 +85,21 @@ public class MultiMeetServiceImpl implements MultiMeetService {
rtcRoom
.
setCreateTime
(
new
Date
());
rtcRoom
.
setCreateTime
(
new
Date
());
rtcRoom
.
setUpdateTime
(
new
Date
());
rtcRoom
.
setUpdateTime
(
new
Date
());
imMultiRtcRoomService
.
save
(
rtcRoom
);
imMultiRtcRoomService
.
save
(
rtcRoom
);
// 将邀请人存入房间成员
ImMultiRtcRoomMember
roomMember
=
new
ImMultiRtcRoomMember
();
roomMember
.
setId
(
SnowflakeUtil
.
getId
());
roomMember
.
setFkRtcRoomId
(
rtcRoom
.
getId
());
roomMember
.
setRoomId
(
param
.
getRoomId
());
roomMember
.
setFkClientId
(
currentClient
.
getId
());
roomMember
.
setClientId
(
currentClient
.
getClientId
());
roomMember
.
setState
(
MultiRtcMemberStateEnum
.
ANSWERED
.
getCode
());
roomMember
.
setCallTime
(
new
Date
());
roomMember
.
setHeartbeatTime
(
new
Date
());
roomMember
.
setCreateTime
(
new
Date
());
roomMember
.
setUpdateTime
(
new
Date
());
roomMembersToSave
.
add
(
roomMember
);
}
else
{
}
else
{
// 取得历史成员列表
List
<
ImMultiRtcRoomMember
>
rtcRoomMemberList
=
imMultiRtcRoomMemberService
.
list
(
List
<
ImMultiRtcRoomMember
>
rtcRoomMemberList
=
imMultiRtcRoomMemberService
.
list
(
new
QueryWrapper
<
ImMultiRtcRoomMember
>().
lambda
()
new
QueryWrapper
<
ImMultiRtcRoomMember
>().
lambda
()
.
eq
(
ImMultiRtcRoomMember:
:
getFkRtcRoomId
,
rtcRoom
.
getId
())
.
eq
(
ImMultiRtcRoomMember:
:
getFkRtcRoomId
,
rtcRoom
.
getId
())
...
@@ -98,7 +113,6 @@ public class MultiMeetServiceImpl implements MultiMeetService {
...
@@ -98,7 +113,6 @@ public class MultiMeetServiceImpl implements MultiMeetService {
members
.
add
(
roomMemberDto
);
members
.
add
(
roomMemberDto
);
}
}
}
}
List
<
ImMultiRtcRoomMember
>
roomMembersToSave
=
Lists
.
newArrayList
();
for
(
String
toClientId
:
param
.
getToClients
())
{
for
(
String
toClientId
:
param
.
getToClients
())
{
ImClient
toClient
=
imClientService
.
getCacheImClient
(
currentClient
.
getFkAppid
(),
toClientId
);
ImClient
toClient
=
imClientService
.
getCacheImClient
(
currentClient
.
getFkAppid
(),
toClientId
);
if
(
toClient
==
null
)
{
if
(
toClient
==
null
)
{
...
@@ -108,7 +122,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
...
@@ -108,7 +122,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
// 占线 通知邀请方
// 占线 通知邀请方
List
<
ImMultiRtcRoomMember
>
busyMember
=
imMultiRtcRoomMemberService
.
list
(
new
QueryWrapper
<
ImMultiRtcRoomMember
>().
lambda
()
List
<
ImMultiRtcRoomMember
>
busyMember
=
imMultiRtcRoomMemberService
.
list
(
new
QueryWrapper
<
ImMultiRtcRoomMember
>().
lambda
()
.
eq
(
ImMultiRtcRoomMember:
:
getClientId
,
toClientId
)
.
eq
(
ImMultiRtcRoomMember:
:
getClientId
,
toClientId
)
.
in
(
ImMultiRtcRoomMember:
:
getState
,
Lists
.
newArrayList
(
MultiRtcMemberStateEnum
.
ANSWERED
.
getCode
()
,
MultiRtcMemberStateEnum
.
CALLING
.
getCode
()
)));
.
in
(
ImMultiRtcRoomMember:
:
getState
,
Lists
.
newArrayList
(
MultiRtcMemberStateEnum
.
ANSWERED
.
getCode
())));
if
(
CollectionUtils
.
isNotEmpty
(
busyMember
))
{
if
(
CollectionUtils
.
isNotEmpty
(
busyMember
))
{
MultiMeetBusyResponse
multiMeetBusyResponse
=
new
MultiMeetBusyResponse
();
MultiMeetBusyResponse
multiMeetBusyResponse
=
new
MultiMeetBusyResponse
();
multiMeetBusyResponse
.
setConversationId
(
param
.
getConversationId
());
multiMeetBusyResponse
.
setConversationId
(
param
.
getConversationId
());
...
@@ -146,19 +160,6 @@ public class MultiMeetServiceImpl implements MultiMeetService {
...
@@ -146,19 +160,6 @@ public class MultiMeetServiceImpl implements MultiMeetService {
roomMemberDto
.
setState
(
MultiRtcMemberStateEnum
.
CALLING
.
getCode
());
roomMemberDto
.
setState
(
MultiRtcMemberStateEnum
.
CALLING
.
getCode
());
members
.
add
(
roomMemberDto
);
members
.
add
(
roomMemberDto
);
}
}
// 将邀请人存入房间成员
ImMultiRtcRoomMember
roomMember
=
new
ImMultiRtcRoomMember
();
roomMember
.
setId
(
SnowflakeUtil
.
getId
());
roomMember
.
setFkRtcRoomId
(
rtcRoom
.
getId
());
roomMember
.
setRoomId
(
param
.
getRoomId
());
roomMember
.
setFkClientId
(
currentClient
.
getId
());
roomMember
.
setClientId
(
currentClient
.
getClientId
());
roomMember
.
setState
(
MultiRtcMemberStateEnum
.
ANSWERED
.
getCode
());
roomMember
.
setCallTime
(
new
Date
());
roomMember
.
setHeartbeatTime
(
new
Date
());
roomMember
.
setCreateTime
(
new
Date
());
roomMember
.
setUpdateTime
(
new
Date
());
roomMembersToSave
.
add
(
roomMember
);
imMultiRtcRoomMemberService
.
saveBatch
(
roomMembersToSave
);
imMultiRtcRoomMemberService
.
saveBatch
(
roomMembersToSave
);
for
(
RoomMemberDto
member
:
members
)
{
for
(
RoomMemberDto
member
:
members
)
{
// ws向接收方发送通知
// ws向接收方发送通知
...
...
core/src/main/java/com/wecloud/rtc/service/impl/RtcServiceImpl.java
View file @
829167de
...
@@ -205,7 +205,7 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
...
@@ -205,7 +205,7 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
public
Boolean
sdpForward
(
SdpForwardParam
sdpForwardParam
)
{
public
Boolean
sdpForward
(
SdpForwardParam
sdpForwardParam
)
{
ImClient
client
=
imClientService
.
getCurrentClient
();
ImClient
client
=
imClientService
.
getCurrentClient
();
Long
rtcChannelId
=
SnowflakeUtil
.
get
Id
();
Long
rtcChannelId
=
sdpForwardParam
.
getChannel
Id
();
// 根据appKey查询appid
// 根据appKey查询appid
ImApplication
imApplication
=
imApplicationService
.
getCacheById
(
client
.
getFkAppid
());
ImApplication
imApplication
=
imApplicationService
.
getCacheById
(
client
.
getFkAppid
());
...
@@ -246,7 +246,7 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
...
@@ -246,7 +246,7 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
public
Boolean
candidateForward
(
CandidateForwardParam
candidateForwardParam
)
{
public
Boolean
candidateForward
(
CandidateForwardParam
candidateForwardParam
)
{
ImClient
client
=
imClientService
.
getCurrentClient
();
ImClient
client
=
imClientService
.
getCurrentClient
();
Long
rtcChannelId
=
SnowflakeUtil
.
get
Id
();
Long
rtcChannelId
=
candidateForwardParam
.
getChannel
Id
();
// 根据appKey查询appid
// 根据appKey查询appid
ImApplication
imApplication
=
imApplicationService
.
getCacheById
(
client
.
getFkAppid
());
ImApplication
imApplication
=
imApplicationService
.
getCacheById
(
client
.
getFkAppid
());
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment