review:【IoT 物联网】http、emqx 的实现
This commit is contained in:
parent
def9ff11dd
commit
815f38436c
@ -98,6 +98,21 @@ public class IotGatewayProperties {
|
|||||||
*/
|
*/
|
||||||
private Integer serverPort;
|
private Integer serverPort;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否开启 SSL
|
||||||
|
*/
|
||||||
|
@NotNull(message = "是否开启 SSL 不能为空")
|
||||||
|
private Boolean sslEnabled = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SSL 证书路径
|
||||||
|
*/
|
||||||
|
private String sslKeyPath;
|
||||||
|
/**
|
||||||
|
* SSL 证书路径
|
||||||
|
*/
|
||||||
|
private String sslCertPath;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@ -70,6 +70,7 @@ public class IotEmqxAuthEventProtocol {
|
|||||||
IotEmqxAuthEventHandler handler = new IotEmqxAuthEventHandler(serverId);
|
IotEmqxAuthEventHandler handler = new IotEmqxAuthEventHandler(serverId);
|
||||||
router.post(IotMqttTopicUtils.MQTT_AUTH_PATH).handler(handler::handleAuth);
|
router.post(IotMqttTopicUtils.MQTT_AUTH_PATH).handler(handler::handleAuth);
|
||||||
router.post(IotMqttTopicUtils.MQTT_EVENT_PATH).handler(handler::handleEvent);
|
router.post(IotMqttTopicUtils.MQTT_EVENT_PATH).handler(handler::handleEvent);
|
||||||
|
// TODO @haohao:/mqtt/acl 需要处理么?
|
||||||
|
|
||||||
// 3. 启动 HTTP 服务器
|
// 3. 启动 HTTP 服务器
|
||||||
try {
|
try {
|
||||||
|
|||||||
@ -127,6 +127,7 @@ public class IotEmqxUpstreamProtocol {
|
|||||||
// 1. 连接 MQTT Broker
|
// 1. 连接 MQTT Broker
|
||||||
CountDownLatch latch = new CountDownLatch(1);
|
CountDownLatch latch = new CountDownLatch(1);
|
||||||
AtomicBoolean success = new AtomicBoolean(false);
|
AtomicBoolean success = new AtomicBoolean(false);
|
||||||
|
// TODO @haohao:要不要加 MqttClientOptions 参数?1)setCleanSession true;2)setMaxInflightQueue 10000;3)setKeepAliveInterval 60;4)setSsl/setTrustAll
|
||||||
mqttClient.connect(port, host, connectResult -> {
|
mqttClient.connect(port, host, connectResult -> {
|
||||||
if (connectResult.succeeded()) {
|
if (connectResult.succeeded()) {
|
||||||
log.info("[connectMqttSync][MQTT 客户端连接成功, host: {}, port: {}]", host, port);
|
log.info("[connectMqttSync][MQTT 客户端连接成功, host: {}, port: {}]", host, port);
|
||||||
|
|||||||
@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.iot.gateway.protocol.http.router.IotHttpUpstreamH
|
|||||||
import io.vertx.core.AbstractVerticle;
|
import io.vertx.core.AbstractVerticle;
|
||||||
import io.vertx.core.Vertx;
|
import io.vertx.core.Vertx;
|
||||||
import io.vertx.core.http.HttpServer;
|
import io.vertx.core.http.HttpServer;
|
||||||
|
import io.vertx.core.http.HttpServerOptions;
|
||||||
|
import io.vertx.core.net.PemKeyCertOptions;
|
||||||
import io.vertx.ext.web.Router;
|
import io.vertx.ext.web.Router;
|
||||||
import io.vertx.ext.web.handler.BodyHandler;
|
import io.vertx.ext.web.handler.BodyHandler;
|
||||||
import jakarta.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
@ -49,10 +51,17 @@ public class IotHttpUpstreamProtocol extends AbstractVerticle {
|
|||||||
router.post(IotHttpUpstreamHandler.PATH).handler(upstreamHandler);
|
router.post(IotHttpUpstreamHandler.PATH).handler(upstreamHandler);
|
||||||
|
|
||||||
// 启动 HTTP 服务器
|
// 启动 HTTP 服务器
|
||||||
|
HttpServerOptions options = new HttpServerOptions()
|
||||||
|
.setPort(httpProperties.getServerPort());
|
||||||
|
if (Boolean.TRUE.equals(httpProperties.getSslEnabled())) {
|
||||||
|
PemKeyCertOptions pemKeyCertOptions = new PemKeyCertOptions().setKeyPath(httpProperties.getSslKeyPath())
|
||||||
|
.setCertPath(httpProperties.getSslCertPath());
|
||||||
|
options = options.setSsl(true).setKeyCertOptions(pemKeyCertOptions);
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
httpServer = vertx.createHttpServer()
|
httpServer = vertx.createHttpServer(options)
|
||||||
.requestHandler(router)
|
.requestHandler(router)
|
||||||
.listen(httpProperties.getServerPort())
|
.listen()
|
||||||
.result();
|
.result();
|
||||||
log.info("[start][IoT 网关 HTTP 协议启动成功,端口:{}]", httpProperties.getServerPort());
|
log.info("[start][IoT 网关 HTTP 协议启动成功,端口:{}]", httpProperties.getServerPort());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user