Git Product home page Git Product logo

smqtt's Issues

cluster集群创建问题

cluster集群属性配置:
cluster: # 集群配置
enable: ${CLUSTER_ENABLE:true} # 集群开关
url: ${CLUSTER_URL:192.168.26.123:7771,192.168.26.124:7771,192.168.25.100:7771} # 启动节点
port: ${CLUSTER_PORT:7771} # 端口 7772
node: ${CLUSTER_NODE:node-1} # 集群节点名称 唯一,123:node-2,124:node-3
namespace: ${CLUSTER_NAMESPACE:topband} # 集群空间,需要一致才能通信
集群以docker方式启动(--net host),192.168.25.100为本机节点IP,DEBUG日志可以看到与123、124建立了连接:
DEBUG r.n.resources.NewConnectionProvider - [id:43e77142, L:/192.168.25.100:55297 - R:/192.168.26.123:7771] Connected new channel
DEBUG r.n.resources.NewConnectionProvider - [id:43e77142, L:/192.168.25.100:55297 - R:/192.168.26.123:7771] onStateChange([connected], SimpleConnection{channel=[id: 0x43e77142, L:/192.168.25.100:55297 - R:/192.168.26.123:7771]})
DEBUG r.n.resources.NewConnectionProvider - [id:43e77142, L:/192.168.25.100:55297 - R:/192.168.26.123:7771] onStateChange([configured], ChannelOperations{SimpleConnection{channel=[id: 0x43e77142, L:/192.168.25.100:55297 - R:/192.168.26.123:7771]}})
DEBUG r.n.resources.NewConnectionProvider - [id:46eb97b2, L:/192.168.25.100:55298 - R:/192.168.26.124:7771] Connected new channel
DEBUG r.n.resources.NewConnectionProvider - [id:46eb97b2, L:/192.168.25.100:55298 - R:/192.168.26.124:7771] onStateChange([connected], SimpleConnection{channel=[id: 0x46eb97b2, L:/192.168.25.100:55298 - R:/192.168.26.124:7771]})
DEBUG r.n.resources.NewConnectionProvider - [id:46eb97b2, L:/192.168.25.100:55298 - R:/192.168.26.124:7771] onStateChange([configured], ChannelOperations{SimpleConnection{channel=[id: 0x46eb97b2, L:/192.168.25.100:55298 - R:/192.168.26.124:7771]}})

本地机器ScubeClusterRegistry类的spreadMessage()方法向集群传播消息时,打印cluster.otherMembers():
INFO i.g.q.registry.ScubeClusterRegistry - cluster: [topband:[email protected]:7771]
而124机器上打印cluster.otherMembers():[],为空
请问这是怎么回事?

mqtt over websocket的8999的端口如何连接?

大佬您好,1883mqtt的可以连接发送消息,mqtt over websocket 的有什么客户端可以测试么?网上找的mqtt over websocket连接界面,可以连接其他人的mqtt over websocket,连接123.57.69.210:8999的会失败,请问知道是哪块配置错了吗?或者这块有什么注意事项或者推荐吗

Dependency io.netty:netty-common leading to CVE problem

Hi, In /smqtt-core,there is a dependency io.netty:netty-common:4.1.66.Final that calls the risk method.

CVE-2022-24823

The scope of this CVE affected version is [4.0.0.Final,4.1.77.Final)

After further analysis, in this project, the main Api called is io.netty.util.internal.PlatformDependent: createTempFile(java.lang.String,java.lang.String,java.io.File)Ljava.io.File;

Risk method repair link : GitHub

CVE Bug Invocation Path--

Path Length : 8

CVE Bug Invocation Path : 
io.github.quickmsg.core.ssl.AbstractSslHandler: secure(reactor.netty.tcp.SslProvider$SslContextSpec,io.github.quickmsg.common.config.Configuration)V /download/apache-maven-3.6.3/repository_mount/org/casbin/jdbc-adapter/2.1.3/jdbc-adapter-2.1.3.jar
io.netty.handler.ssl.util.SelfSignedCertificate: init()V /download/apache-maven-3.6.3/repository_mount/org/casbin/jdbc-adapter/2.1.3/jdbc-adapter-2.1.3.jar
io.netty.handler.ssl.util.SelfSignedCertificate: init(java.util.Date,java.util.Date,java.lang.String,int)V /download/apache-maven-3.6.3/repository_mount/org/casbin/jdbc-adapter/2.1.3/jdbc-adapter-2.1.3.jar
io.netty.handler.ssl.util.SelfSignedCertificate: init(java.lang.String,java.util.Date,java.util.Date,java.lang.String,int)V /download/apache-maven-3.6.3/repository_mount/org/casbin/jdbc-adapter/2.1.3/jdbc-adapter-2.1.3.jar
io.netty.handler.ssl.util.SelfSignedCertificate: init(java.lang.String,java.security.SecureRandom,int,java.util.Date,java.util.Date,java.lang.String)V /download/apache-maven-3.6.3/repository_mount/org/casbin/jdbc-adapter/2.1.3/jdbc-adapter-2.1.3.jar
io.netty.handler.ssl.util.BouncyCastleSelfSignedCertGenerator: generate(java.lang.String,java.security.KeyPair,java.security.SecureRandom,java.util.Date,java.util.Date,java.lang.String)[Ljava.lang.String; /download/apache-maven-3.6.3/repository_mount/org/casbin/jdbc-adapter/2.1.3/jdbc-adapter-2.1.3.jar
io.netty.handler.ssl.util.SelfSignedCertificate: newSelfSignedCertificate(java.lang.String,java.security.PrivateKey,java.security.cert.X509Certificate)[Ljava.lang.String; /download/apache-maven-3.6.3/repository_mount/org/casbin/jdbc-adapter/2.1.3/jdbc-adapter-2.1.3.jar
io.netty.util.internal.PlatformDependent: createTempFile(java.lang.String,java.lang.String,java.io.File)Ljava.io.File;

Dependency tree--

[INFO] io.github.quickmsg:smqtt-core:jar:1.1.7
[INFO] +- io.github.quickmsg:smqtt-common:jar:1.1.7:compile
[INFO] |  +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.12.4:compile
[INFO] |  |  \- org.yaml:snakeyaml:jar:1.27:compile
[INFO] |  +- com.fasterxml.jackson.dataformat:jackson-dataformat-properties:jar:2.12.4:compile
[INFO] |  +- io.projectreactor.netty:reactor-netty:jar:1.0.10:compile
[INFO] |  |  +- io.projectreactor.netty:reactor-netty-core:jar:1.0.10:compile
[INFO] |  |  |  +- io.netty:netty-handler:jar:4.1.66.Final:compile
[INFO] |  |  |  +- io.netty:netty-handler-proxy:jar:4.1.66.Final:compile
[INFO] |  |  |  |  \- io.netty:netty-codec-socks:jar:4.1.66.Final:compile
[INFO] |  |  |  +- io.netty:netty-resolver-dns:jar:4.1.66.Final:compile
[INFO] |  |  |  |  \- io.netty:netty-codec-dns:jar:4.1.66.Final:compile
[INFO] |  |  |  +- io.netty:netty-resolver-dns-native-macos:jar:osx-x86_64:4.1.66.Final:compile
[INFO] |  |  |  |  \- io.netty:netty-transport-native-unix-common:jar:4.1.66.Final:compile
[INFO] |  |  |  +- io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.66.Final:compile
[INFO] |  |  |  \- io.projectreactor:reactor-core:jar:3.4.9:compile
[INFO] |  |  |     \- org.reactivestreams:reactive-streams:jar:1.0.3:compile
[INFO] |  |  +- io.projectreactor.netty:reactor-netty-http:jar:1.0.10:compile
[INFO] |  |  |  +- io.netty:netty-codec-http:jar:4.1.66.Final:compile
[INFO] |  |  |  \- io.netty:netty-codec-http2:jar:4.1.66.Final:compile
[INFO] |  |  \- io.projectreactor.netty:reactor-netty-http-brave:jar:1.0.10:runtime
[INFO] |  |     \- io.zipkin.brave:brave-instrumentation-http:jar:5.13.3:runtime
[INFO] |  |        \- io.zipkin.brave:brave:jar:5.13.3:runtime
[INFO] |  |           \- io.zipkin.reporter2:zipkin-reporter-brave:jar:2.16.3:runtime
[INFO] |  |              \- io.zipkin.reporter2:zipkin-reporter:jar:2.16.3:runtime
[INFO] |  |                 \- io.zipkin.zipkin2:zipkin:jar:2.23.2:runtime
[INFO] |  +- io.netty:netty-codec-mqtt:jar:4.1.66.Final:compile
[INFO] |  |  +- io.netty:netty-common:jar:4.1.66.Final:compile
[INFO] |  |  +- io.netty:netty-buffer:jar:4.1.66.Final:compile
[INFO] |  |  +- io.netty:netty-transport:jar:4.1.66.Final:compile
[INFO] |  |  |  \- io.netty:netty-resolver:jar:4.1.66.Final:compile
[INFO] |  |  \- io.netty:netty-codec:jar:4.1.66.Final:compile
[INFO] |  +- org.projectlombok:lombok:jar:1.18.20:compile
[INFO] |  +- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] |  +- ch.qos.logback:logback-core:jar:1.1.11:compile
[INFO] |  +- ch.qos.logback:logback-classic:jar:1.1.11:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-core:jar:2.12.4:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.11.0:compile
[INFO] |  |  \- com.fasterxml.jackson.core:jackson-annotations:jar:2.11.0:compile
[INFO] |  +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.11.0:compile
[INFO] |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.11.0:compile
[INFO] |  +- io.micrometer:micrometer-core:jar:1.8.0:compile
[INFO] |  |  +- org.hdrhistogram:HdrHistogram:jar:2.1.12:compile
[INFO] |  |  \- org.latencyutils:LatencyUtils:jar:2.0.3:runtime
[INFO] |  +- com.github.oshi:oshi-core:jar:5.3.6:compile
[INFO] |  |  +- net.java.dev.jna:jna:jar:5.6.0:compile
[INFO] |  |  \- net.java.dev.jna:jna-platform:jar:5.6.0:compile
[INFO] |  +- io.micrometer:micrometer-registry-prometheus:jar:1.8.0:compile
[INFO] |  |  \- io.prometheus:simpleclient_common:jar:0.12.0:compile
[INFO] |  |     \- io.prometheus:simpleclient:jar:0.12.0:compile
[INFO] |  |        +- io.prometheus:simpleclient_tracer_otel:jar:0.12.0:compile
[INFO] |  |        |  \- io.prometheus:simpleclient_tracer_common:jar:0.12.0:compile
[INFO] |  |        \- io.prometheus:simpleclient_tracer_otel_agent:jar:0.12.0:compile
[INFO] |  +- io.micrometer:micrometer-registry-influx:jar:1.8.0:compile
[INFO] |  +- org.casbin:jcasbin:jar:1.22.1:compile
[INFO] |  |  +- com.googlecode.aviator:aviator:jar:5.3.0-beta2:compile
[INFO] |  |  +- com.github.seancfoley:ipaddress:jar:4.2.0:compile
[INFO] |  |  +- commons-io:commons-io:jar:2.7:compile
[INFO] |  |  +- org.apache.commons:commons-csv:jar:1.8:compile
[INFO] |  |  \- com.google.code.gson:gson:jar:2.8.9:compile
[INFO] |  \- org.casbin:jdbc-adapter:jar:2.1.3:compile
[INFO] |     +- com.oracle.database.jdbc:ojdbc6:jar:11.2.0.4:compile
[INFO] |     |  +- com.oracle.database.jdbc:ucp:jar:11.2.0.4:compile
[INFO] |     |  +- com.oracle.database.security:oraclepki:jar:11.2.0.4:compile
[INFO] |     |  +- com.oracle.database.security:osdt_cert:jar:11.2.0.4:compile
[INFO] |     |  +- com.oracle.database.security:osdt_core:jar:11.2.0.4:compile
[INFO] |     |  +- com.oracle.database.ha:simplefan:jar:11.2.0.4:compile
[INFO] |     |  \- com.oracle.database.ha:ons:jar:11.2.0.4:compile
[INFO] |     +- org.postgresql:postgresql:jar:42.2.12:compile
[INFO] |     +- com.microsoft.sqlserver:mssql-jdbc:jar:8.2.2.jre8:compile
[INFO] |     \- dev.failsafe:failsafe:jar:3.0.0:compile
[INFO] +- io.github.quickmsg:smqtt-rule-dsl:jar:1.1.7:compile
[INFO] |  \- io.github.quickmsg:smqtt-rule-engine:jar:1.1.7:compile
[INFO] |     +- io.github.quickmsg:smqtt-rule-source-kafka:jar:1.1.7:compile
[INFO] |     |  \- org.apache.kafka:kafka-clients:jar:2.8.0:compile
[INFO] |     |     +- com.github.luben:zstd-jni:jar:1.4.9-1:compile
[INFO] |     |     +- org.lz4:lz4-java:jar:1.7.1:compile
[INFO] |     |     \- org.xerial.snappy:snappy-java:jar:1.1.8.1:compile
[INFO] |     +- io.github.quickmsg:smqtt-rule-source-http:jar:1.1.7:compile
[INFO] |     +- io.github.quickmsg:smqtt-rule-source-rocketmq:jar:1.1.7:compile
[INFO] |     |  \- org.apache.rocketmq:rocketmq-client:jar:4.9.1:compile
[INFO] |     |     +- org.apache.rocketmq:rocketmq-common:jar:4.9.1:compile
[INFO] |     |     |  +- org.apache.rocketmq:rocketmq-remoting:jar:4.9.1:compile
[INFO] |     |     |  |  +- com.alibaba:fastjson:jar:1.2.76:compile
[INFO] |     |     |  |  \- org.apache.rocketmq:rocketmq-logging:jar:4.9.1:compile
[INFO] |     |     |  \- commons-validator:commons-validator:jar:1.7:compile
[INFO] |     |     |     +- commons-beanutils:commons-beanutils:jar:1.9.4:compile
[INFO] |     |     |     +- commons-digester:commons-digester:jar:2.1:compile
[INFO] |     |     |     \- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] |     |     +- org.apache.commons:commons-lang3:jar:3.4:compile
[INFO] |     |     \- commons-codec:commons-codec:jar:1.9:compile
[INFO] |     +- io.github.quickmsg:smqtt-rule-source-rabbitmq:jar:1.1.7:compile
[INFO] |     |  \- com.rabbitmq:amqp-client:jar:3.6.5:compile
[INFO] |     +- io.github.quickmsg:smqtt-rule-source-db:jar:1.1.7:compile
[INFO] |     |  +- org.jooq:jooq:jar:3.14.11:compile
[INFO] |     |  |  \- javax.xml.bind:jaxb-api:jar:2.3.1:compile
[INFO] |     |  |     \- javax.activation:javax.activation-api:jar:1.2.0:compile
[INFO] |     |  +- org.jooq:jooq-meta:jar:3.14.11:compile
[INFO] |     |  +- org.jooq:jooq-codegen:jar:3.14.11:compile
[INFO] |     |  +- com.zaxxer:HikariCP:jar:4.0.3:compile
[INFO] |     |  \- mysql:mysql-connector-java:jar:5.1.35:compile
[INFO] |     +- io.github.quickmsg:smqtt-rule-source-mqtt:jar:1.1.7:compile
[INFO] |     |  \- com.hivemq:hivemq-mqtt-client:jar:1.2.2:compile
[INFO] |     |     +- io.reactivex.rxjava2:rxjava:jar:2.2.19:compile
[INFO] |     |     +- org.jctools:jctools-core:jar:2.1.2:runtime
[INFO] |     |     +- org.jetbrains:annotations:jar:16.0.3:runtime
[INFO] |     |     \- com.google.dagger:dagger:jar:2.27:runtime
[INFO] |     |        \- javax.inject:javax.inject:jar:1:runtime
[INFO] |     \- org.apache.commons:commons-jexl3:jar:3.2.1:compile
[INFO] |        \- commons-logging:commons-logging:jar:1.2:compile
[INFO] +- io.github.quickmsg:smqtt-metric-influxdb:jar:1.1.7:compile
[INFO] \- io.github.quickmsg:smqtt-metric-prometheus:jar:1.1.7:compile

Suggested solutions:

Update dependency version

Thank you very much.

拦截器问题

1.ConnectionCounterInterceptor类根据CONNECT拦截,但ChannelRegistry.counts()执行通常发生在registry()之前,所以得到的count不是最新的。
2.尝试通过CONNACK拦截进行计数,发现CONNACK拦截不成功

您好,我想问一下数据持久化保存数据的问题

我注意到关联了数据库后(我用的是mysql),发送的消息如果带retain,那么是可以保存到数据库的。我想问一下如果是不带retain的消息,目前的框架内有办法能将数据保存到数据库中么?或者保存到内存通过外部接口获取到这个数据么?
多谢。

遇到空指针异常

12:13:48.153 [business-io-1262] ERROR i.g.q.core.protocol.PublishProtocol - error
java.lang.NullPointerException: null
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1693)
	at io.github.quickmsg.core.spi.DefaultMessageRegistry.saveSessionMessage(DefaultMessageRegistry.java:32)
	at io.github.quickmsg.core.protocol.PublishProtocol.filterOfflineSession(PublishProtocol.java:128)
	at io.github.quickmsg.core.protocol.PublishProtocol.lambda$send$0(PublishProtocol.java:102)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178)
	at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1707)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
	at io.github.quickmsg.core.protocol.PublishProtocol.send(PublishProtocol.java:109)
	at io.github.quickmsg.core.protocol.PublishProtocol.parseProtocol(PublishProtocol.java:68)
	at io.github.quickmsg.common.protocol.Protocol.lambda$doParseProtocol$0(Protocol.java:27)
	at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:47)
	at reactor.core.publisher.Mono.subscribe(Mono.java:4338)
	at reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.run(MonoSubscribeOn.java:126)
	at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)
	at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.