Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
mica
mica-mqtt
提交
75d79fd4
mica-mqtt
项目概览
mica
/
mica-mqtt
通知
71
Star
1
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
mica-mqtt
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
75d79fd4
编写于
4月 26, 2022
作者:
浅梦2013
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
✨
统一响应模型
上级
62700c14
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
31 addition
and
44 deletion
+31
-44
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/http/api/code/ResultCode.java
...reamlu/iot/mqtt/core/server/http/api/code/ResultCode.java
+4
-1
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/http/handler/MqttHttpRequestHandler.java
...mqtt/core/server/http/handler/MqttHttpRequestHandler.java
+5
-12
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/http/handler/MqttHttpRoutes.java
...mlu/iot/mqtt/core/server/http/handler/MqttHttpRoutes.java
+6
-14
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/http/handler/RouteInfo.java
.../dreamlu/iot/mqtt/core/server/http/handler/RouteInfo.java
+16
-17
未找到文件。
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/http/api/code/ResultCode.java
浏览文件 @
75d79fd4
...
...
@@ -48,7 +48,10 @@ public enum ResultCode {
* 未知错误
*/
E105
(
HttpResponseStatus
.
C500
,
105
),
/**
* 请求方法错误
*/
E404
(
HttpResponseStatus
.
C404
,
404
),
;
private
final
HttpResponseStatus
statusCode
;
...
...
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/http/handler/MqttHttpRequestHandler.java
浏览文件 @
75d79fd4
...
...
@@ -48,19 +48,15 @@ public class MqttHttpRequestHandler implements HttpRequestHandler {
return
resp500
(
request
,
requestLine
,
e
);
}
// 2. 路由处理
H
andlerInfo
handler
=
MqttHttpRoutes
.
getHandler
(
requestLine
);
H
ttpHandler
handler
=
MqttHttpRoutes
.
getHandler
(
requestLine
);
if
(
handler
==
null
)
{
return
resp404
(
request
,
requestLine
);
}
Method
method
=
requestLine
.
getMethod
();
if
(
handler
.
getMethod
()
!=
method
)
{
return
Result
.
fail
(
new
HttpResponse
(
request
),
ResultCode
.
E104
);
}
if
(
logger
.
isInfoEnabled
())
{
logger
.
info
(
"mqtt http api {} path:{}"
,
method
.
name
()
,
requestLine
.
getPathAndQuery
());
logger
.
info
(
"mqtt http api {} path:{}"
,
requestLine
.
method
,
requestLine
.
getPathAndQuery
());
}
try
{
return
handler
.
getHandler
().
apply
(
request
);
return
handler
.
apply
(
request
);
}
catch
(
Exception
e
)
{
return
resp500
(
request
,
requestLine
,
e
);
}
...
...
@@ -71,9 +67,7 @@ public class MqttHttpRequestHandler implements HttpRequestHandler {
if
(
logger
.
isErrorEnabled
())
{
logger
.
error
(
"mqtt http {} path:{} 404"
,
requestLine
.
getMethod
().
name
(),
requestLine
.
getPathAndQuery
());
}
HttpResponse
response
=
new
HttpResponse
(
request
);
response
.
setStatus
(
HttpResponseStatus
.
C404
);
return
response
;
return
Result
.
fail
(
request
,
ResultCode
.
E404
);
}
@Override
...
...
@@ -81,8 +75,7 @@ public class MqttHttpRequestHandler implements HttpRequestHandler {
if
(
logger
.
isErrorEnabled
())
{
logger
.
error
(
"mqtt http {} path:{} error"
,
requestLine
.
getMethod
().
name
(),
requestLine
.
getPathAndQuery
(),
throwable
);
}
HttpResponse
response
=
new
HttpResponse
(
request
);
return
Result
.
fail
(
response
,
ResultCode
.
E105
);
return
Result
.
fail
(
request
,
ResultCode
.
E105
);
}
@Override
...
...
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/http/handler/MqttHttpRoutes.java
浏览文件 @
75d79fd4
...
...
@@ -28,7 +28,7 @@ import java.util.*;
*/
public
final
class
MqttHttpRoutes
{
private
static
final
LinkedList
<
HttpFilter
>
FILTERS
=
new
LinkedList
<>();
private
static
final
Map
<
String
,
HandlerInfo
>
ROUTS
=
new
HashMap
<>();
private
static
final
Map
<
RouteInfo
,
HttpHandler
>
ROUTS
=
new
HashMap
<>();
/**
* 注册 filter 到 first
...
...
@@ -75,17 +75,7 @@ public final class MqttHttpRoutes {
* @param handler HttpHandler
*/
public
static
void
register
(
Method
method
,
String
path
,
HttpHandler
handler
)
{
ROUTS
.
put
(
path
,
new
HandlerInfo
(
method
,
handler
));
}
/**
* 读取路由
*
* @param path 路径
* @return HandlerInfo
*/
public
static
HandlerInfo
getHandler
(
String
path
)
{
return
ROUTS
.
get
(
path
);
ROUTS
.
put
(
new
RouteInfo
(
path
,
method
),
handler
);
}
/**
...
...
@@ -94,8 +84,10 @@ public final class MqttHttpRoutes {
* @param requestLine RequestLine
* @return HttpHandler
*/
public
static
HandlerInfo
getHandler
(
RequestLine
requestLine
)
{
return
getHandler
(
requestLine
.
getPath
());
public
static
HttpHandler
getHandler
(
RequestLine
requestLine
)
{
String
path
=
requestLine
.
getPath
();
Method
method
=
requestLine
.
getMethod
();
return
ROUTS
.
get
(
new
RouteInfo
(
path
,
method
));
}
}
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/http/handler/
Handler
Info.java
→
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/http/handler/
Route
Info.java
浏览文件 @
75d79fd4
...
...
@@ -25,21 +25,13 @@ import java.util.Objects;
*
* @author L.cm
*/
public
class
HandlerInfo
{
public
class
RouteInfo
{
private
final
String
path
;
private
final
Method
method
;
private
final
HttpHandler
handler
;
public
HandlerInfo
(
Method
method
,
HttpHandler
handler
)
{
public
RouteInfo
(
String
path
,
Method
method
)
{
this
.
path
=
path
;
this
.
method
=
method
;
this
.
handler
=
handler
;
}
public
Method
getMethod
()
{
return
method
;
}
public
HttpHandler
getHandler
()
{
return
handler
;
}
@Override
...
...
@@ -47,16 +39,23 @@ public class HandlerInfo {
if
(
this
==
o
)
{
return
true
;
}
if
(
!(
o
instanceof
HandlerInfo
))
{
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
(
))
{
return
false
;
}
HandlerInfo
that
=
(
HandlerInfo
)
o
;
return
method
==
that
.
method
&&
Objects
.
equals
(
handler
,
that
.
handler
);
RouteInfo
that
=
(
RouteInfo
)
o
;
return
Objects
.
equals
(
path
,
that
.
path
)
&&
method
==
that
.
method
;
}
@Override
public
int
hashCode
()
{
return
Objects
.
hash
(
method
,
handler
);
return
Objects
.
hash
(
path
,
method
);
}
@Override
public
String
toString
()
{
return
"HandlerInfo{"
+
"path='"
+
path
+
'\''
+
", method="
+
method
+
'}'
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录