Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
konke-ai-alibaba-mcp
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
何金镒
konke-ai-alibaba-mcp
Commits
e1afe5f4
Commit
e1afe5f4
authored
Sep 16, 2025
by
何金镒
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
思必驰的兜底技能6
parent
189b0678
Changes
5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
186 additions
and
174 deletions
+186
-174
src/main/java/com/ikonke/konkeaialibabamcp/controller/DifyControllerV2.java
...ikonke/konkeaialibabamcp/controller/DifyControllerV2.java
+1
-0
src/main/java/com/ikonke/konkeaialibabamcp/event/listener/DifyChatSteamEventListener.java
...alibabamcp/event/listener/DifyChatSteamEventListener.java
+8
-3
src/main/java/com/ikonke/konkeaialibabamcp/service/cdc/CdcHttpUtils.java
...om/ikonke/konkeaialibabamcp/service/cdc/CdcHttpUtils.java
+9
-8
src/main/java/com/ikonke/konkeaialibabamcp/ws/MsgWebSocket.java
...in/java/com/ikonke/konkeaialibabamcp/ws/MsgWebSocket.java
+6
-1
src/test/java/com/ikonke/konkeaialibabamcp/KonkeAiAlibabaMcpApplicationTests.java
.../konkeaialibabamcp/KonkeAiAlibabaMcpApplicationTests.java
+162
-162
No files found.
src/main/java/com/ikonke/konkeaialibabamcp/controller/DifyControllerV2.java
View file @
e1afe5f4
...
@@ -107,6 +107,7 @@ public class DifyControllerV2 {
...
@@ -107,6 +107,7 @@ public class DifyControllerV2 {
// 异步执行对话????
// 异步执行对话????
eventPublisher
.
publishEvent
(
new
DifyChatSteamEvent
(
this
,
token
.
getSn
(),
input
));
eventPublisher
.
publishEvent
(
new
DifyChatSteamEvent
(
this
,
token
.
getSn
(),
input
));
res
=
String
.
format
(
res
,
"正在思考中"
,
false
);
res
=
String
.
format
(
res
,
"正在思考中"
,
false
);
response
=
JSONUtil
.
parseObj
(
res
);
response
=
JSONUtil
.
parseObj
(
res
);
}
else
if
(
list
.
size
()
>
1
){
}
else
if
(
list
.
size
()
>
1
){
...
...
src/main/java/com/ikonke/konkeaialibabamcp/event/listener/DifyChatSteamEventListener.java
View file @
e1afe5f4
...
@@ -33,6 +33,11 @@ public class DifyChatSteamEventListener {
...
@@ -33,6 +33,11 @@ public class DifyChatSteamEventListener {
log
.
info
(
"处理dify AI 聊天:sn:{},input:{}"
,
event
.
getSn
(),
event
.
getInput
());
log
.
info
(
"处理dify AI 聊天:sn:{},input:{}"
,
event
.
getSn
(),
event
.
getInput
());
try
{
try
{
if
(
MsgWebSocket
.
getWebSocket
(
event
.
getSn
()))
{
log
.
error
(
"未找到sn:{}的WebSocket连接,不处理对话"
,
event
.
getSn
());
return
;
}
QueryWrapper
<
CDCToken
>
wrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
CDCToken
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"sn"
,
event
.
getSn
());
wrapper
.
eq
(
"sn"
,
event
.
getSn
());
List
<
CDCToken
>
list
=
tokenService
.
list
(
wrapper
);
List
<
CDCToken
>
list
=
tokenService
.
list
(
wrapper
);
...
@@ -49,11 +54,11 @@ public class DifyChatSteamEventListener {
...
@@ -49,11 +54,11 @@ public class DifyChatSteamEventListener {
log
.
info
(
"dify请求返回:{}"
,
ai_result
);
log
.
info
(
"dify请求返回:{}"
,
ai_result
);
String
result_end
=
ai_result
.
replaceAll
(
"(?m)^\\s*$[\r\n]*"
,
""
).
replaceAll
(
"[\r\n]+"
,
"\n"
).
replaceAll
(
"[\r\n]"
,
""
).
trim
();
//
String result_end = ai_result.replaceAll("(?m)^\\s*$[\r\n]*", "").replaceAll("[\r\n]+", "\n").replaceAll("[\r\n]", "").trim();
log
.
info
(
"dify请求返回2--->:{}"
,
result_end
);
//
log.info("dify请求返回2--->:{}",result_end);
// 通过WebSocket发送消息给屏端
// 通过WebSocket发送消息给屏端
MsgWebSocket
.
sendToSingle
(
event
.
getSn
(),
result_end
);
MsgWebSocket
.
sendToSingle
(
event
.
getSn
(),
ai_result
);
log
.
info
(
"dify请求耗时--->:{}"
,
System
.
currentTimeMillis
()
-
startTime
);
log
.
info
(
"dify请求耗时--->:{}"
,
System
.
currentTimeMillis
()
-
startTime
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
...
src/main/java/com/ikonke/konkeaialibabamcp/service/cdc/CdcHttpUtils.java
View file @
e1afe5f4
...
@@ -60,16 +60,17 @@ public class CdcHttpUtils {
...
@@ -60,16 +60,17 @@ public class CdcHttpUtils {
*
*
*/
*/
public
UserEntity
getOwner
(
CDCToken
bySn
){
public
UserEntity
getOwner
(
CDCToken
bySn
){
log
.
info
(
"去建发获取业主信息,sn:{},ccu:{}"
,
bySn
.
getSn
(),
bySn
.
getCcuId
());
if
(
CDCTokenCache
.
get
(
bySn
.
getSn
())!=
null
){
String
s
=
CDCTokenCache
.
get
(
bySn
.
getSn
());
return
JSONUtil
.
toBean
(
s
,
UserEntity
.
class
);
}
else
{
String
body
=
HttpRequest
.
get
(
getOwnerUrl
)
String
body
=
HttpRequest
.
get
(
getOwnerUrl
)
.
header
(
"X-token"
,
bySn
.
getAccessToken
())
.
header
(
"X-token"
,
bySn
.
getAccessToken
())
.
header
(
"gateway-id"
,
bySn
.
getSn
())
.
header
(
"gateway-id"
,
bySn
.
getCcuId
())
.
timeout
(
timeout
)
.
timeout
(
timeout
)
.
execute
().
body
();
.
execute
().
body
();
if
(
CDCTokenCache
.
get
(
bySn
.
getSn
())!=
null
){
String
s
=
CDCTokenCache
.
get
(
bySn
.
getSn
());
return
JSONUtil
.
toBean
(
s
,
UserEntity
.
class
);
}
else
{
JSONObject
jsonObject
=
JSONUtil
.
parseObj
(
body
);
JSONObject
jsonObject
=
JSONUtil
.
parseObj
(
body
);
if
(
jsonObject
.
getInt
(
"code"
)
==
200
){
if
(
jsonObject
.
getInt
(
"code"
)
==
200
){
UserEntity
userEntity
=
JSONUtil
.
toBean
(
jsonObject
.
getJSONObject
(
"data"
),
UserEntity
.
class
);
UserEntity
userEntity
=
JSONUtil
.
toBean
(
jsonObject
.
getJSONObject
(
"data"
),
UserEntity
.
class
);
...
@@ -92,7 +93,7 @@ public class CdcHttpUtils {
...
@@ -92,7 +93,7 @@ public class CdcHttpUtils {
UserEntity
userEntity
=
getOwner
(
bySn
);
UserEntity
userEntity
=
getOwner
(
bySn
);
String
body
=
HttpRequest
.
get
(
url
)
String
body
=
HttpRequest
.
get
(
url
)
.
header
(
"X-token"
,
bySn
.
getAccessToken
())
.
header
(
"X-token"
,
bySn
.
getAccessToken
())
.
header
(
"gateway-id"
,
sn
)
.
header
(
"gateway-id"
,
bySn
.
getCcuId
()
)
.
header
(
"space-yr"
,
userEntity
.
communityId
)
.
header
(
"space-yr"
,
userEntity
.
communityId
)
.
header
(
"communityId"
,
userEntity
.
communityId
)
.
header
(
"communityId"
,
userEntity
.
communityId
)
.
header
(
"space-phone"
,
userEntity
.
phoneNum
)
.
header
(
"space-phone"
,
userEntity
.
phoneNum
)
...
@@ -113,7 +114,7 @@ public class CdcHttpUtils {
...
@@ -113,7 +114,7 @@ public class CdcHttpUtils {
UserEntity
userEntity
=
getOwner
(
bySn
);
UserEntity
userEntity
=
getOwner
(
bySn
);
String
result
=
HttpRequest
.
post
(
url
)
String
result
=
HttpRequest
.
post
(
url
)
.
header
(
"X-token"
,
bySn
.
getAccessToken
())
.
header
(
"X-token"
,
bySn
.
getAccessToken
())
.
header
(
"gateway-id"
,
sn
)
.
header
(
"gateway-id"
,
bySn
.
getCcuId
()
)
.
header
(
"space-yr"
,
userEntity
.
communityId
)
.
header
(
"space-yr"
,
userEntity
.
communityId
)
.
header
(
"communityId"
,
userEntity
.
communityId
)
.
header
(
"communityId"
,
userEntity
.
communityId
)
.
header
(
"space-phone"
,
userEntity
.
phoneNum
)
.
header
(
"space-phone"
,
userEntity
.
phoneNum
)
...
...
src/main/java/com/ikonke/konkeaialibabamcp/ws/MsgWebSocket.java
View file @
e1afe5f4
...
@@ -45,12 +45,13 @@ public class MsgWebSocket {
...
@@ -45,12 +45,13 @@ public class MsgWebSocket {
public
static
void
sendToSingle
(
String
sn
,
String
message
)
{
public
static
void
sendToSingle
(
String
sn
,
String
message
)
{
try
{
try
{
log
.
info
(
"===>APP发送:sn={},message={}"
,
sn
,
message
);
Session
session
=
sessions
.
get
(
sn
);
Session
session
=
sessions
.
get
(
sn
);
if
(
session
!=
null
&&
session
.
isOpen
())
{
if
(
session
!=
null
&&
session
.
isOpen
())
{
synchronized
(
session
)
{
// 添加同步锁
synchronized
(
session
)
{
// 添加同步锁
session
.
getBasicRemote
().
sendText
(
message
);
session
.
getBasicRemote
().
sendText
(
message
);
}
}
}
else
{
log
.
warn
(
"发送消息的连接不存在:sn={}"
,
sn
);
}
}
}
catch
(
Exception
e
){
}
catch
(
Exception
e
){
e
.
printStackTrace
();
e
.
printStackTrace
();
...
@@ -58,6 +59,10 @@ public class MsgWebSocket {
...
@@ -58,6 +59,10 @@ public class MsgWebSocket {
}
}
}
}
public
static
boolean
getWebSocket
(
String
sn
){
Session
session
=
sessions
.
get
(
sn
);
return
session
!=
null
&&
session
.
isOpen
();
}
/**
/**
* 建立连接调用的方法
* 建立连接调用的方法
...
...
src/test/java/com/ikonke/konkeaialibabamcp/KonkeAiAlibabaMcpApplicationTests.java
View file @
e1afe5f4
This diff is collapsed.
Click to expand it.
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