= CoAP Component
:doctitle: CoAP
:shortname: coap
:artifactid: camel-coap
:description: Send and receive messages to/from CoAP (Constrained Application Protocol) capable devices.
:since: 2.16
:supportlevel: Stable
:tabs-sync-option:
:component-header: Both producer and consumer are supported
//Manually maintained attributes
:camel-spring-boot-name: coap

*Since Camel {since}*

*{component-header}*

Camel-CoAP is an http://camel.apache.org/[Apache Camel] component that
allows you to work with CoAP, a lightweight REST-type protocol for machine-to-machine operation. 
http://coap.technology/[CoAP], Constrained Application Protocol is a specialized web transfer protocol 
for use with constrained nodes and constrained networks, and it is based on RFC 7252.

Maven users will need to add the following dependency to their pom.xml
for this component:

[source,xml]
---------------------------------------------------------
<dependency>
 <groupId>org.apache.camel</groupId>
 <artifactId>camel-coap</artifactId>
 <version>x.x.x</version>
 <!-- use the same version as your Camel core version -->
</dependency>
---------------------------------------------------------


// component options: START
include::partial$component-configure-options.adoc[]
include::partial$component-endpoint-options.adoc[]
include::partial$component-endpoint-headers.adoc[]
// component options: END

== Usage

Camel supports the DTLS, TCP and TLS protocols via the following URI schemes:

[width="100%",cols="2,5",options="header"]
|===
| Scheme | Protocol
| coap   | UDP
| coaps  | UDP + DTLS
| coap+tcp | TCP
| coaps+tcp | TCP + TLS
|===

There are a number of different configuration options to configure TLS. For both DTLS (the "coaps" uri scheme)
and TCP + TLS (the "coaps+tcp" uri scheme), it is possible to use a "sslContextParameters" parameter, from
which the camel-coap component will extract the required truststore / keystores etc. to set up TLS. In addition,
the DTLS protocol supports two alternative configuration mechanisms. To use a pre-shared key, configure a
pskStore, and to work with raw public keys, configure privateKey + publicKey objects.


=== Configuring the CoAP producer request method

The following rules determine which request method the CoAP producer will use to invoke the target URI:

 1. The value of the `CamelCoapMethod` header
 2. `GE` if a query string is provided on the target CoAP server URI.
 3. `POST` if the message exchange body is not null.
 4. `GET` otherwise.


include::spring-boot:partial$starter.adoc[]

== Configuring COAP Server

The COAP server has many configuration options, and this can be configured from a properties file such as `Californium3.properties`.
You can specfiy the location of this configuration file on the Camel CoAPComponent, such as:

[source,java]
----
CoAPComponent coap = context.getComponent("coap", CoAPComponent.class);
coap.setCconfigurationFile("/etc/myapp/Californium3.properties");
----

The configuration file has many options, here is a sample from CoAP 3.13 release from the
https://github.com/eclipse-californium/californium/blob/main/demo-apps/cf-simplefile-server/README.md[cf-simplefile-server] example:

[source,properties]
----
# Californium CoAP Properties file for Fileserver
# Thu Feb 27 21:43:28 CET 2025
#
# Maximum payload size with coap/UDP using an external network interface.
# Default: 64
EXTERNAL_UDP_MAX_MESSAGE_SIZE=64
# Preferred blocksize for blockwise transfer with coap/UDP using an
# external network interface.
# Default: 64
EXTERNAL_UDP_PREFERRED_BLOCK_SIZE=64
# Random factor for initial CoAP acknowledge timeout.
# Default: 1.5
COAP.ACK_INIT_RANDOM=1.5
# Initial CoAP acknowledge timeout.
# Default: 2[s]
COAP.ACK_TIMEOUT=2[s]
# Scale factor for CoAP acknowledge backoff-timeout.
# Default: 2.0
COAP.ACK_TIMEOUT_SCALE=2.0
# Enable automatic failover on "entity too large" response.
# Default: true
COAP.BLOCKWISE_ENTITY_TOO_LARGE_AUTO_FAILOVER=true
# Reuse token for blockwise requests. Ease traceability but may introduce
# vulnerability.
# Default: false
COAP.BLOCKWISE_REUSE_TOKEN=false
# Interval to validate lifetime of blockwise status.
# Default: 5[s]
COAP.BLOCKWISE_STATUS_INTERVAL=5[s]
# Lifetime of blockwise status.
# Default: 5[min]
COAP.BLOCKWISE_STATUS_LIFETIME=5[min]
# Use block1 option strictly, even for error-responses.
# Default: false
COAP.BLOCKWISE_STRICT_BLOCK1_OPTION=false
# Use block2 option strictly, even if block2 is not required.
# Default: false
COAP.BLOCKWISE_STRICT_BLOCK2_OPTION=false
# CoAP port.
# Default: 5683
COAP.COAP_PORT=5683
# CoAP DTLS port.
# Default: 5684
COAP.COAP_SECURE_PORT=5684
# Congestion-Control algorithm (still experimental).
# [NULL, COCOA, COCOA_STRONG, BASIC_RTO, LINUX_RTO, PEAKHOPPER_RTO].
# Default: NULL
COAP.CONGESTION_CONTROL_ALGORITHM=NULL
# Use inet-address for congestion control, even if an other peer identity
# is used. Enable, if NAT changes are also changing the quality of the
# ip-route.
# Default: false
COAP.CONGESTION_CONTROL_USE_INET_ADDRESS=false
# Crop rotation period.
# Default: 247[s]
COAP.CROP_ROTATION_PERIOD=247[s]
# Deduplicator algorithm.
# [MARK_AND_SWEEP, PEERS_MARK_AND_SWEEP, CROP_ROTATION, NO_DEDUPLICATOR].
# Default: MARK_AND_SWEEP
COAP.DEDUPLICATOR=MARK_AND_SWEEP
# Automatic replace entries in deduplicator.
# Default: true
COAP.DEDUPLICATOR_AUTO_REPLACE=true
# CoAP maximum exchange lifetime for CON requests.
# Default: 247[s]
COAP.EXCHANGE_LIFETIME=247[s]
# Timespan a multicast server may spread the response.
# Default: 5[s]
COAP.LEISURE=5[s]
# Mark and sweep interval.
# Default: 10[s]
COAP.MARK_AND_SWEEP_INTERVAL=10[s]
# Maximum CoAP acknowledge timeout.
# Default: 1[min]
COAP.MAX_ACK_TIMEOUT=1[min]
# Maximum number of active peers.
# Default: 150000
COAP.MAX_ACTIVE_PEERS=150000
# Maximum transmission latency for messages.
# Default: 100[s]
COAP.MAX_LATENCY=100[s]
# Maximum payload size.
# Default: 1024
COAP.MAX_MESSAGE_SIZE=512
# Maximum inactive period of peer.
# Default: 10[min]
COAP.MAX_PEER_INACTIVITY_PERIOD=10[min]
# Maximum size of resource body. 0 to disable transparent blockwise
# mode.
# Default: 8192
COAP.MAX_RESOURCE_BODY_SIZE=2097152
# Maximum number of CoAP retransmissions.
# Default: 4
COAP.MAX_RETRANSMIT=4
# Maximum number of observes on server-side. 0 to disable this limitation.
# Default: 50000
COAP.MAX_SERVER_OBSERVES=50000
# Maximum server response delay.
# Default: 250[s]
COAP.MAX_SERVER_RESPONSE_DELAY=250[s]
# Maximum time to wait for ACK or RST after the first transmission of
# a CON message.
# Default: 93[s]
COAP.MAX_TRANSMIT_WAIT=93[s]
# MID tracker.
# [NULL, GROUPED, MAPBASED].
# Default: GROUPED
COAP.MID_TACKER=GROUPED
# Number of MID tracker groups.
# Default: 16
COAP.MID_TRACKER_GROUPS=16
# Base MID for multicast requests.
# Default: 65000
COAP.MULTICAST_BASE_MID=65000
# CoAP maximum lifetime for NON requests.
# Default: 145[s]
COAP.NON_LIFETIME=145[s]
# Interval time to check notifications receiver using a CON message.
# Default: 2[min]
COAP.NOTIFICATION_CHECK_INTERVAL=2[min]
# Interval counter to check notifications receiver using a CON message.
# Default: 100
COAP.NOTIFICATION_CHECK_INTERVAL_COUNT=100
# Additional time (backoff) to the max-age option
# for waiting for the next notification before reregister.
# Default: 2[s]
COAP.NOTIFICATION_REREGISTRATION_BACKOFF=2[s]
# Maximum concurrent transmissions.
# Default: 1
COAP.NSTART=1
# Maximum messages kept per peer for PEERS_MARK_AND_SWEEP.
# Default: 64
COAP.PEERS_MARK_AND_SWEEP_MESSAGES=64
# Preferred blocksize for blockwise transfer.
# Default: 512
COAP.PREFERRED_BLOCK_SIZE=512
# Probing rate to peers, which didn't response before. Currently not
# used.
# Default: 1.0
COAP.PROBING_RATE=1.0
# Protocol stage thread count.
# Default: 1
COAP.PROTOCOL_STAGE_THREAD_COUNT=14
# Response matching mode.
# [STRICT, RELAXED, PRINCIPAL, PRINCIPAL_IDENTITY].
# Default: STRICT
COAP.RESPONSE_MATCHING=STRICT
# Process empty messages strictly according RFC7252, 4.1 as format error.
# Disable to ignore additional data as tokens or options.
# Default: true
COAP.STRICT_EMPTY_MESSAGE_FORMAT=true
# Number of block per TCP-blockwise bulk transfer.
# Default: 1
COAP.TCP_NUMBER_OF_BULK_BLOCKS=4
# Limit of token size.
# Default: 8
COAP.TOKEN_SIZE_LIMIT=8
# Use message off-loading, when data is not longer required.
# Default: false
COAP.USE_MESSAGE_OFFLOADING=false
# Use initially a random value for MID.
# Default: true
COAP.USE_RANDOM_MID_START=true
# DTLS additional initial timeout for ECC related flights.
# Default: 0[ms]
DTLS.ADDITIONAL_ECC_TIMEOUT=0[ms]
# DTLS auto-handshake timeout. After that period without exchanging
# messages, a new message will initiate a handshake. Must not be used
# with SERVER_ONLY! Common value will be "30[s]" in order to compensate
# assumed NAT timeouts. <blank>, disabled.
DTLS.AUTO_HANDSHAKE_TIMEOUT=
# List of DTLS certificate key algorithms.
# On the client side used to select the default cipher-suites, on the
# server side to negotiate the client's certificate.
# List of [EC, RSA].
DTLS.CERTIFICATE_KEY_ALGORITHMS=
# DTLS supported certificate types ordered by preference.
# List of [RAW_PUBLIC_KEY, X_509].
# Default: RAW_PUBLIC_KEY, X_509
DTLS.CERTIFICATE_TYPES=RAW_PUBLIC_KEY, X_509
# List of DTLS cipher-suites.
# If not recommended cipher suites are intended to be used, switch off
# DTLS_RECOMMENDED_CIPHER_SUITES_ONLY.
# The supported cipher suites are evaluated at runtime and may differ
# from the ones when creating this properties file.
# List of [TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256, TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA378,
# TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256, TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256,
# TLS_PSK_WITH_AES_128_GCM_SHA256, TLS_PSK_WITH_AES_256_GCM_SHA378,
# TLS_PSK_WITH_AES_128_CCM_8, TLS_PSK_WITH_AES_256_CCM_8, TLS_PSK_WITH_AES_128_CCM,
# TLS_PSK_WITH_AES_256_CCM, TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, TLS_PSK_WITH_AES_128_CBC_SHA256,
# TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
# TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8,
# TLS_ECDHE_ECDSA_WITH_AES_128_CCM, TLS_ECDHE_ECDSA_WITH_AES_256_CCM,
# TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
# TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
# TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
# TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA].
DTLS.CIPHER_SUITES=
# DTLS connection ID length. <blank> disabled, 0 enables support without
# active use of CID.
DTLS.CONNECTION_ID_LENGTH=
# DTLS cluster-node ID used for connection ID. <blank> not used.
DTLS.CONNECTION_ID_NODE_ID=
# Number of DTLS connector threads.
# Default: 1
DTLS.CONNECTOR_THREAD_COUNT=14
# List of DTLS curves (supported groups).
# Defaults to all supported curves of the JCE at runtime.
# List of [secp256r1, secp384r1, secp521r1, X25519, X448].
DTLS.CURVES=
# DTLS default handshake mode.
# [none, auto].
# Default: auto
DTLS.DEFAULT_HANDSHAKE_MODE=
# DTLS extended master secret mode.
# [NONE, OPTIONAL, ENABLED, REQUIRED].
# Default: ENABLED
DTLS.EXTENDED_MASTER_SECRET_MODE=ENABLED
# Quiet time to reset MAC error filter.
# The MAC error filter blocks all traffic for an endpoint, if since
# the last quiet period the number of new MAC errors exceeds a threshold.
# 0 to disable the MAC error filter.
# Default: 0[ms]
DTLS.MAC_ERROR_FILTER_QUIET_TIME=0[ms]
# Threshold of current MAC errors to block all traffic for an endpoint.
# 0 to disable the MAC error filter.
# Default: 0
DTLS.MAC_ERROR_FILTER_THRESHOLD=0
# DTLS maximum connections.
# Default: 150000
DTLS.MAX_CONNECTIONS=150000
# DTLS maximum size of all deferred inbound messages.
# Default: 8192
DTLS.MAX_DEFERRED_INBOUND_RECORDS=8192
# DTLS maximum deferred outbound application messages.
# Default: 10
DTLS.MAX_DEFERRED_OUTBOUND_APPLICATION_MESSAGES=10
# DTLS maximum length of reassembled fragmented handshake message.
# Must be large enough for used certificates.
# Default: 8192
DTLS.MAX_FRAGMENTED_HANDSHAKE_MESSAGE_LENGTH=8192
# DTLS maximum fragment length (RFC 6066).
# [BYTES_512, BYTES_1024, BYTES_2048, BYTES_4096].
DTLS.MAX_FRAGMENT_SIZE=
# Maximum number of jobs for DTLS handshake results.
# Default: 5000
DTLS.MAX_PENDING_HANDSHAKE_RESULT_JOBS=5000
# Maximum number of jobs for inbound DTLS messages.
# Default: 50000
DTLS.MAX_PENDING_INBOUND_JOBS=50000
# Maximum number of jobs for outbound DTLS messages.
# Default: 50000
DTLS.MAX_PENDING_OUTBOUND_JOBS=50000
# DTLS maximum number of flight retransmissions.
# Default: 4
DTLS.MAX_RETRANSMISSIONS=4
# DTLS maximum retransmission timeout.
# Default: 1[min]
DTLS.MAX_RETRANSMISSION_TIMEOUT=1[min]
# DTLS MTU (Maximum Transmission Unit).
# Must be used, if the MTU of the local network doesn't apply, e.g.
# if ip-tunnels are used.
DTLS.MAX_TRANSMISSION_UNIT=
# DTLS MTU (Maximum Transmission Unit) limit for local auto detection.
DTLS.MAX_TRANSMISSION_UNIT_LIMIT=1500
# List of preselected DTLS cipher-suites.
# If not recommended cipher suites are intended to be used, switch off
# DTLS_RECOMMENDED_CIPHER_SUITES_ONLY.
# The supported cipher suites are evaluated at runtime and may differ
# from the ones when creating this properties file.
# List of [TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256, TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA378,
# TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256, TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256,
# TLS_PSK_WITH_AES_128_GCM_SHA256, TLS_PSK_WITH_AES_256_GCM_SHA378,
# TLS_PSK_WITH_AES_128_CCM_8, TLS_PSK_WITH_AES_256_CCM_8, TLS_PSK_WITH_AES_128_CCM,
# TLS_PSK_WITH_AES_256_CCM, TLS_PSK_WITH_ARIA_128_GCM_SHA256, TLS_PSK_WITH_ARIA_256_GCM_SHA384,
# TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, TLS_PSK_WITH_AES_128_CBC_SHA256,
# TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256, TLS_PSK_WITH_ARIA_128_CBC_SHA256,
# TLS_PSK_WITH_ARIA_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
# TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,
# TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8, TLS_ECDHE_ECDSA_WITH_AES_128_CCM,
# TLS_ECDHE_ECDSA_WITH_AES_256_CCM, TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,
# TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
# TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
# TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,
# TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
# TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
# TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,
# TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384].
DTLS.PRESELECTED_CIPHER_SUITES=
# Use read-write-lock connection store.
# Default: true
DTLS.READ_WRITE_LOCK_CONNECTION_STORE=true
# Number of DTLS receiver threads.
# Default: 1
DTLS.RECEIVER_THREAD_COUNT=2
# DTLS receive-buffer size. Empty or 0 to use the OS default.
DTLS.RECEIVE_BUFFER_SIZE=
# DTLS recommended cipher-suites only.
# Default: true
DTLS.RECOMMENDED_CIPHER_SUITES_ONLY=true
# DTLS recommended ECC curves/groups only.
# Default: true
DTLS.RECOMMENDED_CURVES_ONLY=true
# DTLS recommended signature- and hash-algorithms only.
# Default: true
DTLS.RECOMMENDED_SIGNATURE_AND_HASH_ALGORITHMS_ONLY=true
# DTLS record size limit (RFC 8449). Between 64 and 16K.
DTLS.RECORD_SIZE_LIMIT=
# Remove stale double principals.
# Requires unique principals and a read-write-lock connection store.
# Default: false
DTLS.REMOVE_STALE_DOUBLE_PRINCIPALS=false
# Number of flight-retransmissions before switching to backoff mode
# using single handshake messages in single record datagrams.
DTLS.RETRANSMISSION_BACKOFF=
# DTLS random factor for initial retransmission timeout.
# Default: 1.0
DTLS.RETRANSMISSION_INIT_RANDOM=1.0
# DTLS initial retransmission timeout.
# Default: 2[s]
DTLS.RETRANSMISSION_TIMEOUT=2[s]
# DTLS scale factor for retransmission backoff-timeout.
# Default: 2.0
DTLS.RETRANSMISSION_TIMEOUT_SCALE=2.0
# DTLS role.
# [CLIENT_ONLY, SERVER_ONLY, BOTH].
# Default: BOTH
DTLS.ROLE=BOTH
# Use minimal version of RFC5746 to indicate secure renegotiation on
# initial handshake.
# Renegotation handshakes are always rejected by Californium.
# [NONE, WANTED, NEEDED].
# Default: WANTED
DTLS.SECURE_RENEGOTIATION_MODE=WANTED
# DTLS send-buffer size. Empty or 0 to use the OS default.
DTLS.SEND_BUFFER_SIZE=
# Enable server to use a session ID in order to support session resumption.
# Default: true
DTLS.SERVER_USE_SESSION_ID=true
# DTLS session timeout. Currently not supported.
# Default: 1[h]
DTLS.SESSION_TIMEOUT=1[d]
# List of DTLS signature- and hash-algorithms.
# Values e.g SHA256withECDSA or ED25519.
DTLS.SIGNATURE_AND_HASH_ALGORITHMS=
# DTLS threshold for stale connections. Connections will only get removed
# for new ones, if at least for that threshold no messages are exchanged
# using that connection.
# Default: 30[min]
DTLS.STALE_CONNECTION_THRESHOLD=30[min]
# DTLS support deprecated CID for server (before version 9).
# Default: false
DTLS.SUPPORT_DEPRECATED_CID=false
# Support key material export according RFC5705.
# Default: false
DTLS.SUPPORT_KEY_MATERIAL_EXPORT=false
# DTLS certificate path for validation.
# Default: true
DTLS.TRUNCATE_CERTIFICATE_PATH_FOR_VALIDATION=true
# DTLS truncate client certificate path.
# Default: true
DTLS.TRUNCATE_CLIENT_CERTIFICATE_PATH=true
# DTLS update address using CID on newer records.
# Default: true
DTLS.UPDATE_ADDRESS_USING_CID_ON_NEWER_RECORDS=true
# DTLS use the anti-replay-filter.
# Default: true
DTLS.USE_ANTI_REPLAY_FILTER=true
# Use default DTLS record filter.
# Default: true
DTLS.USE_DEFAULT_RECORD_FILTER=true
# DTLS use deprecated CID extension code point for client (before version
# 09 of RFC-CID).
DTLS.USE_DEPRECATED_CID=
# DTLS use a disabled window for the anti-replay-filter. -1 := extend
# the disabled window to start of session, 0 := normal window, <n> :=
# disabled window of size <n>.
# Default: 0
DTLS.USE_DISABLED_WINDOW_FOR_ANTI_REPLAY_FILTER=0
# Stop retransmission on receiving the first message of the next flight,
# not waiting for the last message.
# Default: true
DTLS.USE_EARLY_STOP_RETRANSMISSION=true
# DTLS use a HELLO_VERIFY_REQUEST to protect against spoofing.
# Default: true
DTLS.USE_HELLO_VERIFY_REQUEST=true
# DTLS use a HELLO_VERIFY_REQUEST for PSK cipher suites to protect against
# spoofing.
# Default: true
DTLS.USE_HELLO_VERIFY_REQUEST_FOR_PSK=true
# Use multiple handshake messages in DTLS records.
# Not all libraries may have implemented this!
DTLS.USE_MULTI_HANDSHAKE_MESSAGE_RECORDS=
# Use multiple DTLS records in UDP messages.
DTLS.USE_MULTI_RECORD_MESSAGES=
# DTLS use newer record filter.
# Drop reordered records in order to protect from delay attacks,
# if no other means, maybe on application level, are available.
# Default: false
DTLS.USE_NEWER_FILTER=false
# DTLS use server name indication.
# Default: false
DTLS.USE_SERVER_NAME_INDICATION=false
# DTLS verify peers on resumption threshold in percent.
# Default: 30
DTLS.VERIFY_PEERS_ON_RESUMPTION_THRESHOLD=30
# DTLS verifies the server certificate's subjects.
# Default: true
DTLS.VERIFY_SERVER_CERTIFICATES_SUBJECT=true
# Health status interval. 0 to disable the health status.
# Default: 0[ms]
SYS.HEALTH_STATUS_INTERVAL=0[ms]
# TCP connection idle timeout.
# Default: 10[s]
TCP.CONNECTION_IDLE_TIMEOUT=10[s]
# TCP connect timeout.
# Default: 10[s]
TCP.CONNECT_TIMEOUT=10[s]
# TLS handshake timeout.
# Default: 10[s]
TCP.HANDSHAKE_TIMEOUT=10[s]
# TLS session timeout.
# Default: 1[h]
TCP.SESSION_TIMEOUT=1[h]
# TLS verifies the server certificate's subjects.
# Default: true
TCP.VERIFY_SERVER_CERTIFICATES_SUBJECT=true
# Number of TCP worker threads. 0 to use default of TCP implementation.
# Default: 0
TCP.WORKER_THREADS=0
# Maximum number of pending outgoing messages.
# Default: 2147483647
UDP.CONNECTOR_OUT_CAPACITY=2147483647
# Maxium size of UDP datagram.
# Default: 2048
UDP.DATAGRAM_SIZE=2048
# Number of UDP receiver threads.
# Default: 1
UDP.RECEIVER_THREAD_COUNT=2
# UDP receive-buffer size. Empty or 0 to use the OS default.
UDP.RECEIVE_BUFFER_SIZE=
# Number of UDP sender threads.
# Default: 1
UDP.SENDER_THREAD_COUNT=2
# UDP send-buffer size. Empty or 0 to use the OS default.
UDP.SEND_BUFFER_SIZE=
----