Посмотреть исходный код на GitHub
OpenThread предлагает как серверную, так и клиентскую функциональность Secure CoAP, позволяя устройствам подключаться к ресурсам на сервере Secure CoAP и отслеживать каждый ресурс на предмет изменения его текущего состояния.
Secure CoAP использует Datagram Transport Layer Security (DTLS) для установления безопасных сквозных соединений.
Агент Secure CoAP, предоставленный в CLI, может действовать как клиент Secure CoAP или сервер Secure CoAP.
В этом руководстве представлены основные задачи, в которых используются некоторые из наиболее распространенных команд Secure CoAP ( coaps
).
Безопасные команды CoAP
Чтобы просмотреть список команд Secure CoAP, введите help
:
coaps help
connect
delete
disconnect
get
isclosed
isconnactive
isconnected
post
psk
put
resource
set
start
stop
x509
Done
Справочник команд CLI
Описания и синтаксис всех команд см. в Справочнике команд CLI. Команды Secure CoAP начинаются в алфавитном порядке с coapsconnect .
Пример использования команд сервера Secure CoAP и клиента
В этом примере используются базовые команды CLI для запуска сервера и клиента Secure CoAP, создания тестового ресурса на сервере Secure CoAP и взаимодействия клиента Secure CoAP с ресурсом. Данные выборки используются в иллюстративных целях.
Настройка наборов шифров DTLS
Интерфейс командной строки coaps
предоставляет команды psk
и x509
, которые можно использовать с ключом PSK и сертификатом X.509. Синтаксис команд и примеры см. в документах coaps psk и coaps x509 .
Настройте сервер Secure CoAP
На узле сервера Secure CoAP выполните следующие действия:
Запустите агент Secure CoAP.
coaps start
DoneСоздайте тестовый ресурс.
coaps resource test-resource
Done
Настройте клиент Secure CoAP
На клиентском узле Secure CoAP выполните следующие действия:
Запустите агент Secure CoAP:
coaps start
DoneЗапустите команду
connect
, чтобы инициализировать сеанс DTLS с партнером:coaps connect fdde:ad00:beef:0:9903:14b:27e0:5744
Done coaps connectedЗапустите команду
get
, чтобы получить информацию о ресурсе:coaps get test-resource
Done coaps response from fdde:ad00:beef:0:9903:14b:27e0:5744 with payload: 68656c6c6f576f726c6400Последняя часть ответа сервера — это термин
with payload:
, за которым следуют все байты полезной нагрузки в формате шестнадцатеричных цифр. В примереwith payload: 68656c6c6f576f726c6400
указывает, что текущая полезная нагрузка для ресурса представляет собой шестнадцатеричное значение68656c6c6f576f726c6400
, которое преобразуется в строкуhelloWorld
. Дополнительную информацию об использовании опцииpayload
можно найти в публикации Coaps .Вы можете изменить ресурс с помощью команды
put
:coaps put test-resource con hellothere
Done coaps response from fdde:ad00:beef:0:9903:14b:27e0:5744В этом примере
con
означает, что вы хотите, чтобы надежное сообщение, полученное с использованием подтверждаемого сообщения (con
), было отправлено на сервер Secure CoAP. По умолчанию отправляется неподтверждаемое (non-con
) сообщение.Строка
hellothere
— это пример использования необязательного параметраpayload
, когдаtype
—con
илиnon-con
. Для получения дополнительной информации обратитесь к Coaps Put .Сервер отвечает своим адресом IPv6, чтобы указать, что запрос был обработан.
Ответы отправляются на сервер Secure CoAP.
На сервере выходные данные этого примера будут выглядеть примерно так:
coaps request from fdde:ad00:beef:0:9e68:576f:714c:f395 GET coaps response sent coaps request from fdde:ad00:beef:0:9e68:576f:714c:f395 PUT with payload: 68656c6c6f7468657265 coaps response sent
Значение payload
68656c6c6f7468657265
— это строка hellothere
преобразованная в последовательность байтов кода ASCII.