intégration des logiciels tier comme NanoMQ ainsi que les fichiers json de score

This commit is contained in:
2024-11-18 22:44:28 +01:00
parent 8f2ed89e05
commit a04c4c1f59
138 changed files with 27816 additions and 0 deletions

View File

@ -0,0 +1,71 @@
# NanoMQ Configuration 0.18.0
# #============================================================
# # NanoMQ Broker
# #============================================================
mqtt {
property_size = 32
max_packet_size = 260MB
max_mqueue_len = 2048
retry_interval = 10s
keepalive_multiplier = 1.25
# Three of below, unsupported now
max_inflight_window = 2048
max_awaiting_rel = 10s
await_rel_timeout = 10s
}
listeners.tcp {
bind = "0.0.0.0:1883"
}
# listeners.ssl {
# bind = "0.0.0.0:8883"
# keyfile = "/etc/certs/key.pem"
# certfile = "/etc/certs/cert.pem"
# cacertfile = "/etc/certs/cacert.pem"
# verify_peer = false
# fail_if_no_peer_cert = false
# }
listeners.ws {
bind = "0.0.0.0:9001"
}
http_server {
port = 8081
limit_conn = 2
username = admin
password = public
auth_type = basic
jwt {
public.keyfile = "/etc/certs/jwt/jwtRS256.key.pub"
}
}
log {
to = [file, console]
level = warn
dir = "/tmp"
file = "nanomq.log"
rotation {
size = 10MB
count = 5
}
}
auth {
allow_anonymous = true
no_match = allow
deny_action = ignore
cache = {
max_size = 32
ttl = 1m
}
# password = {include "/etc/nanomq_pwd.conf"}
# acl = {include "/etc/nanomq_acl.conf"}
}

View File

@ -0,0 +1,14 @@
# #====================================================================
# # Configuration for Acl
# #====================================================================
rules = [
# # Allow MQTT client using username "dashboard" to subscribe to "$SYS/#" topics
{"permit": "allow", "username": "dashboard", "action": "subscribe", "topics": ["$SYS/#"]}
# # Deny "All Users" subscribe to "$SYS/#" "#" Topics
# {"permit": "deny", "username": "#", "action": "subscribe", "topics": ["$SYS/#", "#"]}
# # Allow any other publish/subscribe operation
{"permit": "allow"}
]

View File

@ -0,0 +1,399 @@
# #====================================================================
# # MQTT Broker Bridge
# #====================================================================
bridges.mqtt.emqx1 {
# # Bridge address: host:port .
# #
# # Value: String
# # Example: mqtt-tcp://127.0.0.1:1883
# # tls+mqtt-tcp://127.0.0.1:8883
# # mqtt-quic://54.75.171.11:14567
server = "mqtt-tcp://127.0.0.1:1883"
# # Protocol version of the bridge.
# #
# # Value: Enum
# # - 5: mqttv5
# # - 4: mqttv311
# # - 3: mqttv31
proto_ver = 4
# # The ClientId of a remote bridge.
# # Default random string.
# #
# # Value: String
# clientid="bridge_client"
# # Ping: interval of a downward bridge.
# #
# # Value: Duration
# # Default: 10 seconds
keepalive = 60s
# # The maximum backoff timeout.
# # Reconnect after no more than backoff_max when bridge connection lost.
# #
# # Value: Duration
# # Default: 60s
backoff_max = 60s
# # The Clean start flag of a remote bridge.
# #
# # Value: boolean
# # Default: false
# #
# # NOTE: Some IoT platforms require clean_start
# # must be set to 'true'
clean_start = false
# # The username for a remote bridge.
# #
# # Value: String
username = username
# # The password for a remote bridge.
# #
# # Value: String
password = passwd
# # Properties for MQTT V5
conn_properties = {
# # Maximum Packet Size
# #
# # If the Maximum Packet Size is not present, no limit on the packet size is imposed beyond
# # the limitations in the protocol as a result of the remaining length encoding and the protocol header sizes.
# # Value: 1 ~ 4294967295
maximum_packet_size = 1024
# # Receive Maximum
# #
# # The Client uses this value to limit the number of QoS 1 and QoS 2 publications that it is willing to process concurrently.
# # There is no mechanism to limit the QoS 0 publications that the Server might try to send.
# # The value of Receive Maximum applies only to the current Network Connection.
# # If the Receive Maximum value is absent then its value defaults to 65,535.
# #
# # Value: 1 ~ 65535
receive_maximum = 65535
# # Topic Alias Maximum
# #
# # If the Topic Alias Maximum property is absent, the default value is 0.
# # This value indicates the highest value that the Client will accept as a Topic Alias sent by the Server.
# # The Client uses this value to limit the number of Topic Aliases that it is willing to hold on this Connection.
# # Default: 0
# # Value: 0 ~ 65535
topic_alias_maximum = 0
# # Request Problem Information
# #
# # If the Request Problem Information is absent, the value of 1 is used.
# # The Client uses this value to indicate whether the Reason String or User Properties are sent in the case of failures.
# # If the value of Request Problem Information is 0, the Server MAY return a Reason String or User Properties on a CONNACK or DISCONNECT packet,
# # but MUST NOT send a Reason String or User Properties on any packet other than PUBLISH, CONNACK, or DISCONNECT.
# # If the value is 0 and the Client receives a Reason String or User Properties in a packet other than PUBLISH, CONNACK, or DISCONNECT,
# # it uses a DISCONNECT packet with Reason Code 0x82 (Protocol Error) as described in section 4.13 Handling errors.
# # If this value is 1, the Server MAY return a Reason String or User Properties on any packet where it is allowed.
# #
# # Default: 1
# # Value: 0 | 1
request_problem_infomation = 1
# # Request Response Information
# #
# # If the Request Response Information is absent, the value of 0 is used.
# # The Client uses this value to request the Server to return Response Information in the CONNACK.
# # A value of 0 indicates that the Server MUST NOT return Response Information.
# # If the value is 1 the Server MAY return Response Information in the CONNACK packet.
# #
# # Default: 0
# # Value: 0 | 1
request_response_infomation = 0
# # Session Expiry Interval
# #
# # If the Session Expiry Interval is absent the value 0 is used.
# # If it is set to 0, or is absent, the Session ends when the Network Connection is closed.
# # If the Session Expiry Interval is 4294967295 (UINT_MAX), the Session does not expire.
# #
# # Value: 0 ~ 4294967295
session_expiry_interval = 0
# # User Property
# #
# # The User Property is allowed to appear multiple times to represent multiple name, value pairs.
# # The same name is allowed to appear more than once.
# # Value: Map[key(String) - value(String)]
user_property = {
key1 = value1
key2 = value2
}
}
will {
# # Will topic
topic = "will_topic"
# # Will QoS
qos = 1
# # Will paylad retain flag
retain = false
# # Will payload
payload = "will_message"
# # Will properties
properties = {
# # Payload Format Indicator
# #
# # 0 (0x00) Byte Indicates that the Will Message is unspecified bytes,
# # which is equivalent to not sending a Payload Format Indicator.
# #
# # 1 (0x01) Byte Indicates that the Will Message is UTF-8 Encoded Character Data.
# #
# # Default: 0
# # Value: 0 | 1
payload_format_indicator = 0
# # Message Expiry Interval
# #
# # If present, the Four Byte value is the lifetime of the Will Message in seconds
# # and is sent as the Publication Expiry Interval when the Server publishes the Will Message.
# #
# # If absent, no Message Expiry Interval is sent when the Server publishes the Will Message.
message_expiry_interval = 0
# # Content Type
# # The value of the Content Type is defined by the sending and receiving application.
content_type = ""
# # Response Topic
# # The presence of a Response Topic identifies the Will Message as a Request.
response_topic = ""
# # Correlation Data
# # The Correlation Data is used by the sender of the Request Message to identify which request
# # the Response Message is for when it is received.
correlation_data = ""
# # Will Delay Interval
# #
# # If the Will Delay Interval is absent, the default value is 0 and there is no delay
# # before the Will Message is published.
# #
# # The Server delays publishing the Clients Will Message until the Will Delay Interval
# # has passed or the Session ends, whichever happens first.
# # If a new Network Connection to this Session is made before the Will Delay Interval has passed, the Server MUST NOT send the Will Message
will_delay_interval = 0
# # User Property
# #
# # The User Property is allowed to appear multiple times to represent multiple name, value pairs.
# # The same name is allowed to appear more than once.
# # Value: Map[key(String) - value(String)]
user_property = {
key1 = value1
key2 = value2
}
}
}
# # Ssl config ##
# # Ssl config is invalid when working in MQTT over QUIC mode ##
# ssl {
# # # Ssl key password
# # # String containing the user's password. Only used if the private keyfile
# # # is password-protected.
# # #
# # # Value: String
# # # key_password = "yourpass"
# # # Ssl keyfile
# # # Path of the file containing the client's private key.
# # #
# # # Value: File
# keyfile = "../etc/certs/key.pem"
# # # Ssl cert file
# # # Path of the file containing the client certificate.
# # #
# # # Value: File
# certfile = "../etc/certs/cert.pem"
# # # Ssl ca cert file
# # # Path of the file containing the server's root CA certificate.
# # #
# # # This certificate is used to identify the AWS IoT server and is publicly
# # # available.
# # #
# # # Value: File
# cacertfile = "../etc/certs/cacert.pem"
# }
# # Topics that need to be forward to IoTHUB
# #
# # Value: String
# # Example: topic1/#,topic2/#
forwards = [
{
# # Need to forward to remote broker topics
# #
# # Value: String
remote_topic = "fwd/topic1"
# # topic reflection with remote_topic
# #
# # Value: String
local_topic = "topic1"
}
{
remote_topic = "fwd/topic2"
local_topic = "topic2"
}
]
# #--------------------------------------------------------------------
# # The following config params only effective when set QUIC as the
# # transport layer of bridging connection (mqtt-quic://{host}:{port})!
# #
# # Ping: interval of a sending keepalive packet via QUIC transport.
# #
# # Value: Duration
# # Default: 120 seconds
quic_keepalive = 120s
# # Idle Timeout: How long a connection can go idle before it is gracefully shut down.
# # 0 to disable timeout, which may lost disconnect event msg.
# # Value: Duration
# # Default: 120 seconds
quic_idle_timeout = 120s
# # Disconnect Timeout: How long to wait for an ACK before declaring
# # a path dead and disconnecting, This affects stream living time.
# # Value: Duration
# # Default: 20 seconds
quic_discon_timeout = 20s
# # Handshake Timeout: the Max time NanoMQ waits for establishing QUIC connection
# # How long a handshake can idle before it is discarded
# # Value: Duration
# # Default: 60 seconds
quic_handshake_timeout = 60s
# # Send Idle Timeout: Reset congestion control after being idle `SendIdleTimeout`
# # Value: Duration
# # Default: 60 seconds
quic_send_idle_timeout = 2s
# # Initial RTT: Initial RTT estimate. (ms)
# # RTT: round trip time
# # Default: 800ms
quic_initial_rtt_ms = 800ms
# # Max Ack Delay: How long to wait after receiving data before sending an ACK.
# # Value: Duration
# # Default: 100ms
quic_max_ack_delay_ms = 100ms
# # multi-stream mode: enable or disable the multi-stream bridging mode
# # Warning: This is a feature WIP. Do not enable it!
# # Value: True/False
# # Default: False
quic_multi_stream = false
# # qos_priority: send QoS 1/2 msg in high prority
# # QoS 0 messages remain as same
# # Value: true/false
# # Default: true
quic_qos_priority = true
# # 0RTT: enable or diable 0RTT, 0RTT is a feature of QUIC to re-establish
# # connection quickly.
# # Value: true/false
# # Default: true
quic_0rtt = true
subscription = [
{
# # The topic filter of which subscribe to remote broker
# # This must present to enable the subscription of bridging
# #
# # Value: String
remote_topic = "cmd/topic3"
# # This is for Topic reflection, if you want the vanila way:
# # Leave `local_topic=""` to preserve the original topic in msg
# # Value: String
local_topic = "topic3"
# # Need to subscribe to remote topics QoS.
# # Please set QoS for each subscription topic
# # otherwise topic is invalid, NanoMQ won't sub to any topic
# # Value: Number
qos = 1
}
{
remote_topic = "cmd/topic4"
local_topic = "topic4"
qos = 2
}
]
# # Properties of subscribe for MQTT V5
sub_properties {
# # Subscription Identifier
# #
# # The Subscription Identifier can have the value of 1 to 268,435,455.
# # It is a Protocol Error if the Subscription Identifier has a value of 0.
# # It is a Protocol Error to include the Subscription Identifier more than once.
# # The Subscription Identifier is associated with any subscription created or modified as the result of this SUBSCRIBE packet.
# # If there is a Subscription Identifier, it is stored with the subscription.
# # If this property is not specified, then the absence of a Subscription Identifier is stored with the subscription.
# #
# # Value: 1 ~ 268,435,455
identifier = 1
# # User Property
# #
# # The User Property is allowed to appear multiple times to represent multiple name, value pairs.
# # The same name is allowed to appear more than once.
# #
# # Value: Map[key(String) - value(String)]
user_property = {
key1 = value1
key2 = value2
}
}
# # Hybrid bridging: enable or disable the hybrid bridging mode
# # Value: True/False
# # Default: False
hybrid_bridging = false
# # Hybrid servers
# # When hybrid mode is enabled and the connection to server is
# # disconnected. Bridge will switch to hybrid_servers in roundrobin.
# # Value: Array
# # Default: []
hybrid_servers = ["mqtt-quic://127.1:14567", "mqtt-tcp://127.1:1883"]
# # max_parallel_processes
# # Handle a specified maximum number of outstanding requests
# #
# # Value: 1-infinity
max_parallel_processes = 2
# # max send queue length
# # Handle a specified maximum number of message send queue length
# #
# # Value: 1-infinity
max_send_queue_len = 32
# # max receive queue length
# # Handle a specified maximum number of message receive queue length
# #
# # Value: 1-infinity
max_recv_queue_len = 128
}
bridges.mqtt.cache {
# # Max message limitation for caching
# # ( 0 means ineffective )
# # Value: 1-infinity
disk_cache_size = 102400
# # Mounted file path
# #
# # Value: path
# mounted_file_path="/tmp/"
# # The threshold of flushing messages to flash.
# #
# # Value: 1-infinity
flush_mem_threshold = 100
# # Resend interval (ms)
# # The interval for resending the messages after failure recovered. (not related to trigger)
# #
# # Value: 1-infinity
resend_interval = 5000
}

View File

@ -0,0 +1,164 @@
# Example1. (default)
# This configure will make msgs with topic topic1 be shared in DDS network and MQTT network.
# It receive messages from MQTT network in topic DDSCMD/topic1 and send them to DDS network with topic MQTT/topic1.
# It receive messages from DDS network in topic MQTTCMD/topic1 and send them to MQTT network with topic DDS/topic1.
forward_rules = {
dds_to_mqtt = [
{
from_dds = "MQTTCMD/topic1"
to_mqtt = "DDS/topic1"
struct_name = "example_struct"
}
{
from_dds = "MQTTCMD/topic2"
to_mqtt = "DDS/topic2"
struct_name = "example_struct"
}
],
mqtt_to_dds = [
{
from_mqtt = "DDSCMD/topic1"
to_dds = "MQTT/topic1"
struct_name = "example_struct"
}
{
from_mqtt = "DDSCMD/topic2"
to_dds = "MQTT/topic2"
struct_name = "example_struct"
}
]
}
dds {
# # dds domain id
# # default: 0
# # Value: uint32
domain_id = 0
# # dds subscriber partition. Setting multiple partitions is not supported yet.
# # default: "partition"
# # Value: string
subscriber_partition = "partition"
# # dds publisher partition. Setting multiple partitions is not supported yet.
# # default: "partition"
# # Value: string
publisher_partition = "partition"
shared_memory = {
# # Enable shared memory transport.
# # Iceoryx is required if enable shared memory transport.
# #
# # Default: false
# # Value: boolean
enable = false
# # controls the output of the iceoryx runtime and can be set to, in order of decreasing output:
# # log level: verbose, debug, info, warn, error, fatal, off
# # Default: info
# # Value: enum
log_level = info
}
}
mqtt {
connector {
# # Bridge address: host:port .
# #
# # Value: String
# # Example: mqtt-tcp://127.0.0.1:1883
# # tls+mqtt-tcp://127.0.0.1:8883
server = "mqtt-tcp://127.0.0.1:1883"
# # Protocol version of the bridge.
# #
# # Value: Enum
# # - 5: mqttv5
# # - 4: mqttv311
# # - 3: mqttv31
proto_ver = 4
# # The ClientId of a remote bridge.
# # Default random string.
# #
# # Value: String
# clientid="bridge_client"
# # Ping: interval of a downward bridge.
# #
# # Value: Duration
# # Default: 10 seconds
keepalive = 60s
# # The Clean start flag of a remote bridge.
# #
# # Value: boolean
# # Default: false
# #
# # NOTE: Some IoT platforms require clean_start
# # must be set to 'true'
clean_start = true
# # The username for a remote bridge.
# #
# # Value: String
username = username
# # The password for a remote bridge.
# #
# # Value: String
password = passwd
// ssl {
// # # Ssl key password
// # # String containing the user's password. Only used if the private keyfile
// # # is password-protected.
// # #
// # # Value: String
// key_password = "yourpass"
// # # Ssl keyfile
// # # Path of the file containing the client's private key.
// # #
// # # Value: File
// keyfile = "/etc/certs/key.pem"
// # # Ssl cert file
// # # Path of the file containing the client certificate.
// # #
// # # Value: File
// certfile = "/etc/certs/cert.pem"
// # # Ssl ca cert file
// # # Path of the file containing the server's root CA certificate.
// # #
// # # This certificate is used to identify the AWS IoT server and is publicly
// # # available.
// # #
// # # Value: File
// cacertfile = "/etc/certs/cacert.pem"
// }
}
}
# #============================================================
# # Http server
# #============================================================
http_server {
# # http server port
# #
# # Value: 0 - 65535
port = 8082
# # parallel for http server
# # Handle a specified maximum number of outstanding requests
# #
# # Value: 1-infinity
parallel = 2
# # username
# #
# # Basic authorization
# #
# # Value: String
username = admin
# # password
# #
# # Basic authorization
# #
# # Value: String
password = public
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
# #====================================================================
# # Configuration for Password
# #====================================================================
# # Write "username":"password" in this way.
"admin": "public"
"client": "public"

View File

@ -0,0 +1,53 @@
##====================================================================
# # Configuration for MQTT VSOMEIP Gateway
# #====================================================================
gateway.mqtt {
address = "mqtt-tcp://localhost:1885"
sub_topic = "topic/sub"
sub_qos = 0
proto_ver = 4
keepalive = 60
clean_start = true
username = "username"
password = "passwd"
clientid = "vsomeip_gateway"
forward = "topic/pub"
parallel = 2
}
gateway.vsomeip {
service_id = "0x1111"
service_instance_id = "0x2222"
service_method_id = "0x3333"
service_event_id = "0x8778"
service_eventgroup_id = "0x4465"
conf_path = "/etc/vsomeip.json"
}
# #============================================================
# # Http server
# #============================================================
http_server {
# # http server port
# #
# # Value: 0 - 65535
port = 8082
# # parallel for http server
# # Handle a specified maximum number of outstanding requests
# #
# # Value: 1-infinity
parallel = 2
# # username
# #
# # Basic authorization
# #
# # Value: String
username = admin
# # password
# #
# # Basic authorization
# #
# # Value: String
password = public
}

View File

@ -0,0 +1,102 @@
##====================================================================
## Configuration for MQTT ZeroMQ Gateway
##====================================================================
gateway.mqtt {
## MQTT Broker address: host:port .
##
## Value: String
## Example: mqtt-tcp://127.0.0.1:1883
address="mqtt-tcp://broker.emqx.io:1883"
## Need to subscribe to remote broker topics
##
## Value: String
sub_topic="topic/sub"
## Protocol version of the mqtt client.
##
## Value: Enum
## - 5: mqttv5
## - 4: mqttv4
## - 3: mqttv3
proto_ver=4
## Ping interval of a down mqtt client.
##
## Value: Duration
## Default: 10 seconds
keepalive=60
## The Clean start flag of mqtt client.
##
## Value: boolean
## Default: true
##
## NOTE: Some IoT platforms require clean_start
## must be set to 'true'
clean_start=true
## The username for mqtt client.
##
## Value: String
username="username"
## The password for mqtt client.
##
## Value: String
password="passwd"
## Topics that need to be forward to IoTHUB
##
## Value: String
## Example: topic1/pub
forward="topic/pub"
## parallel
## Handle a specified maximum number of outstanding requests
##
## Value: 1-infinity
parallel=2
}
gateway.zmq {
## ZeroMQ Subscribe address: host:port .
##
## Value: String
## Example: tcp://127.0.0.1:5560
sub_address="tcp://127.0.0.1:5560"
## ZeroMQ Publish address: host:port .
##
## Value: String
## Example: tcp://127.0.0.1:5559
pub_address="tcp://127.0.0.1:5559"
## ZeroMQ subscription prefix
##
## Value: String
## Example: sub_prefix
sub_pre="sub_prefix"
## ZeroMQ publish prefix
##
## Value: String
## Example: pub_prefix
pub_pre="pub_prefix"
}
# #============================================================
# # Http server
# #============================================================
http_server {
# # http server port
# #
# # Value: 0 - 65535
port = 8082
# # parallel for http server
# # Handle a specified maximum number of outstanding requests
# #
# # Value: 1-infinity
parallel = 2
# # username
# #
# # Basic authorization
# #
# # Value: String
username = admin
# # password
# #
# # Basic authorization
# #
# # Value: String
password = public
}