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
a02c4d6d
Commit
a02c4d6d
authored
Dec 02, 2021
by
hweeeeeei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
服务端下发透传消息
parent
e1c75079
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
62 additions
and
12 deletions
+62
-12
common/src/main/java/com/wecloud/im/controller/serverapi/ApiImMessageController.java
+1
-1
common/src/main/java/com/wecloud/im/service/ImMessageService.java
+7
-1
common/src/main/java/com/wecloud/im/service/impl/ImMessageServiceImpl.java
+45
-1
common/src/main/java/com/wecloud/im/ws/enums/WsResponseCmdEnum.java
+5
-0
docs/md/内部/wecloud-im前端Websocket对接文档.md
+4
-9
No files found.
common/src/main/java/com/wecloud/im/controller/serverapi/ApiImMessageController.java
View file @
a02c4d6d
...
...
@@ -55,7 +55,7 @@ public class ApiImMessageController extends BaseController {
return
ApiResult
.
result
(
ApiCode
.
FAIL
,
null
);
}
return
imMessageService
.
restApiImMessageSend
(
imMsgSendToOnlineClient
);
return
imMessageService
.
restApiImMessageSend
(
imMsgSendToOnlineClient
,
imApplication
);
}
...
...
common/src/main/java/com/wecloud/im/service/ImMessageService.java
View file @
a02c4d6d
...
...
@@ -24,7 +24,13 @@ import java.util.List;
public
interface
ImMessageService
extends
BaseService
<
ImMessage
>
{
ApiResult
<
Boolean
>
restApiImMessageSend
(
ImMsgSendToOnlineClient
imMsgSendToOnlineClient
);
/**
* 下发透传消息
*
* @param imMsgSendToOnlineClient
* @return
*/
ApiResult
<
Boolean
>
restApiImMessageSend
(
ImMsgSendToOnlineClient
imMsgSendToOnlineClient
,
ImApplication
imApplication
);
ImMessage
saveImMessage
(
ImApplication
imApplication
,
ImClient
imClientSender
,
Long
toConversationId
,
long
messageId
,
String
content
);
...
...
common/src/main/java/com/wecloud/im/service/impl/ImMessageServiceImpl.java
View file @
a02c4d6d
...
...
@@ -42,7 +42,9 @@ import org.springframework.transaction.annotation.Transactional;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* 消息存储表 服务实现类
...
...
@@ -77,7 +79,49 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
private
WriteDataService
writeDataService
;
@Override
public
ApiResult
<
Boolean
>
restApiImMessageSend
(
ImMsgSendToOnlineClient
imMsgSendToOnlineClient
)
{
public
ApiResult
<
Boolean
>
restApiImMessageSend
(
ImMsgSendToOnlineClient
imMsgSendToOnlineClient
,
ImApplication
imApplication
)
{
// 查询该会话所有成员
List
<
ImConversationMembers
>
membersList
=
imConversationMembersService
.
list
(
new
QueryWrapper
<
ImConversationMembers
>().
lambda
()
.
eq
(
ImConversationMembers:
:
getFkConversationId
,
imMsgSendToOnlineClient
.
getConversationId
())
);
if
(
membersList
.
isEmpty
())
{
log
.
info
(
"membersList为空,toConversationId:"
+
imMsgSendToOnlineClient
.
getConversationId
());
return
ApiResult
.
fail
();
}
Map
<
String
,
Object
>
msgMaps
=
new
HashMap
<>();
msgMaps
.
put
(
"content"
,
imMsgSendToOnlineClient
.
getContent
());
msgMaps
.
put
(
"createTime"
,
new
Date
());
msgMaps
.
put
(
"toConversation"
,
imMsgSendToOnlineClient
.
getConversationId
().
toString
());
// 遍历发送
for
(
ImConversationMembers
conversationMembers
:
membersList
)
{
// 查询接收方
ImClient
imClientReceiver
=
imClientService
.
getOne
(
new
QueryWrapper
<
ImClient
>().
lambda
()
.
eq
(
ImClient:
:
getFkAppid
,
imApplication
.
getId
())
.
eq
(
ImClient:
:
getId
,
conversationMembers
.
getFkClientId
()));
if
(
imClientReceiver
==
null
)
{
continue
;
}
WsResponseModel
<
Map
<
String
,
Object
>>
responseModel
=
new
WsResponseModel
<>();
responseModel
.
setCmd
(
WsResponseCmdEnum
.
REST_API_MSG
.
getCmdCode
());
ApiResult
<
Boolean
>
result
=
ApiResult
.
result
(
ApiCode
.
SUCCESS
);
responseModel
.
setCode
(
result
.
getCode
());
responseModel
.
setMsg
(
result
.
getMessage
());
responseModel
.
setData
(
msgMaps
);
responseModel
.
setReqId
(
null
);
// 向接收方推送
writeDataService
.
write
(
responseModel
,
imApplication
.
getAppKey
(),
imClientReceiver
.
getClientId
());
}
return
null
;
}
...
...
common/src/main/java/com/wecloud/im/ws/enums/WsResponseCmdEnum.java
View file @
a02c4d6d
...
...
@@ -8,6 +8,11 @@ package com.wecloud.im.ws.enums;
public
enum
WsResponseCmdEnum
{
/**
* 服务端下发透传消息
*/
REST_API_MSG
(
6
),
/**
* 会话中的事件
*/
CONVERSATION_EVENT_MSG
(
5
),
...
...
docs/md/内部/wecloud-im前端Websocket对接文档.md
View file @
a02c4d6d
# wec
loud-im 前端Websocket对接文档
# wec
loud-im 前端Websocket对接文档
...
...
@@ -454,7 +454,7 @@ websocket是异步的 有可能你很快速的发送了几条消息,服务器响
"cmd"
:
6
,
"data"
:{
"toConversation"
:
1394188055950266368
,
"createTime"
:
1621240016587
,
"content"
:
"json字符串,或任意字符数据"
}
}
...
...
@@ -462,10 +462,6 @@ websocket是异步的 有可能你很快速的发送了几条消息,服务器响
## 客户端在线接收事件类型消息
### 事件类型type (xx表示为某客户端)
...
...
@@ -475,9 +471,8 @@ websocket是异步的 有可能你很快速的发送了几条消息,服务器响
-
xx已接收某消息 -1009
-
xx已读某条消息 -1010
-
你被xx拉入新会话 -1011
-
xx主动退出会话 -1012
-
xx成为新群主 -1013
-
xx主动退出会话 -1012
-
xx成为新群主 -1013
...
...
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