Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
lmp_server
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lmp
lmp_server
Commits
f8973f80
Commit
f8973f80
authored
Nov 29, 2023
by
linpeiqin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
整体格式调整
parent
6a5f9921
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
185 additions
and
0 deletions
+185
-0
WebSocketConfig.java
...in/java/com/yice/webadmin/app/config/WebSocketConfig.java
+18
-0
RunPublishDto.java
...rc/main/java/com/yice/webadmin/app/dto/RunPublishDto.java
+54
-0
WebSocket.java
.../main/java/com/yice/webadmin/app/websocket/WebSocket.java
+113
-0
No files found.
application-webadmin/src/main/java/com/yice/webadmin/app/config/WebSocketConfig.java
0 → 100644
View file @
f8973f80
package
com
.
yice
.
webadmin
.
app
.
config
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.socket.server.standard.ServerEndpointExporter
;
@Configuration
public
class
WebSocketConfig
{
/**
* 注入ServerEndpointExporter,
* 这个bean会自动注册使用了@ServerEndpoint注解声明的Websocket endpoint
*/
@Bean
public
ServerEndpointExporter
serverEndpointExporter
()
{
return
new
ServerEndpointExporter
();
}
}
application-webadmin/src/main/java/com/yice/webadmin/app/dto/RunPublishDto.java
0 → 100644
View file @
f8973f80
package
com
.
yice
.
webadmin
.
app
.
dto
;
import
com.yice.common.core.validator.UpdateGroup
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
@ApiModel
(
"RunPublishDto对象"
)
@Data
public
class
RunPublishDto
{
/**
* 运行ID。
*/
@ApiModelProperty
(
value
=
"运行ID"
,
required
=
true
)
@NotNull
(
message
=
"数据验证失败,运行ID不能为空!"
,
groups
=
{
UpdateGroup
.
class
})
private
Long
runId
;
/**
* 发布方式。
*/
@ApiModelProperty
(
value
=
"发布方式"
)
private
Integer
publishWay
;
/**
* 模型名称。
*/
@ApiModelProperty
(
value
=
"模型名称"
)
private
String
modelName
;
/**
* 模型类型。
*/
@ApiModelProperty
(
value
=
"模型类型"
)
private
Integer
modelType
;
/**
* 模型版本。
*/
@ApiModelProperty
(
value
=
"模型版本"
)
private
Integer
modelVersion
;
/**
* 版本描述。
*/
@ApiModelProperty
(
value
=
"版本描述"
)
private
String
modelDescribe
;
/**
* 模型ID。
*/
@ApiModelProperty
(
value
=
"模型ID"
)
private
Long
modelId
;
}
application-webadmin/src/main/java/com/yice/webadmin/app/websocket/WebSocket.java
0 → 100644
View file @
f8973f80
package
com
.
yice
.
webadmin
.
app
.
websocket
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
import
javax.websocket.*
;
import
javax.websocket.server.PathParam
;
import
javax.websocket.server.ServerEndpoint
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.CopyOnWriteArraySet
;
@Component
@Slf4j
@ServerEndpoint
(
"/websocket/{userId}"
)
// 接口路径 ws://localhost:8087/webSocket/userId;
public
class
WebSocket
{
private
Session
session
;
private
String
userId
;
private
static
CopyOnWriteArraySet
<
WebSocket
>
webSockets
=
new
CopyOnWriteArraySet
<>();
private
static
ConcurrentHashMap
<
String
,
Session
>
sessionPool
=
new
ConcurrentHashMap
<
String
,
Session
>();
/**
* 链接成功调用的方法
*/
@OnOpen
public
void
onOpen
(
Session
session
,
@PathParam
(
value
=
"userId"
)
String
userId
)
{
try
{
this
.
session
=
session
;
this
.
userId
=
userId
;
webSockets
.
add
(
this
);
sessionPool
.
put
(
userId
,
session
);
log
.
info
(
"【websocket消息】有新的连接,总数为:"
+
webSockets
.
size
());
}
catch
(
Exception
e
)
{
}
}
/**
* 链接关闭调用的方法
*/
@OnClose
public
void
onClose
()
{
try
{
webSockets
.
remove
(
this
);
sessionPool
.
remove
(
this
.
userId
);
log
.
info
(
"【websocket消息】连接断开,总数为:"
+
webSockets
.
size
());
}
catch
(
Exception
e
)
{
}
}
/**
* 收到客户端消息后调用的方法
*
* @param message
*/
@OnMessage
public
void
onMessage
(
String
message
)
{
log
.
info
(
"【websocket消息】收到客户端消息:"
+
message
);
this
.
sendOneMessage
(
userId
,
message
);
}
/**
* 发送错误时的处理
*
* @param session
* @param error
*/
@OnError
public
void
onError
(
Session
session
,
Throwable
error
)
{
log
.
error
(
"用户错误,原因:"
+
error
.
getMessage
());
error
.
printStackTrace
();
}
// 此为广播消息
public
void
sendAllMessage
(
String
message
)
{
log
.
info
(
"【websocket消息】广播消息:"
+
message
);
for
(
WebSocket
webSocket
:
webSockets
)
{
try
{
if
(
webSocket
.
session
.
isOpen
())
{
webSocket
.
session
.
getAsyncRemote
().
sendText
(
message
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
// 此为单点消息
public
void
sendOneMessage
(
String
userId
,
String
message
)
{
Session
session
=
sessionPool
.
get
(
userId
);
if
(
session
!=
null
&&
session
.
isOpen
())
{
try
{
log
.
info
(
"【websocket消息】 单点消息:"
+
message
);
session
.
getAsyncRemote
().
sendText
(
message
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
// 此为单点消息(多人)
public
void
sendMoreMessage
(
String
[]
userIds
,
String
message
)
{
for
(
String
userId
:
userIds
)
{
Session
session
=
sessionPool
.
get
(
userId
);
if
(
session
!=
null
&&
session
.
isOpen
())
{
try
{
log
.
info
(
"【websocket消息】 单点消息:"
+
message
);
session
.
getAsyncRemote
().
sendText
(
message
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
}
}
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