Посмотреть исходный код на 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 startDoneСоздайте тестовый ресурс.
coaps resource test-resourceDone
Настройте клиент Secure CoAP
На клиентском узле Secure CoAP выполните следующие действия:
Запустите агент Secure CoAP:
coaps startDoneЗапустите команду
connect, чтобы инициализировать сеанс DTLS с партнером:coaps connect fdde:ad00:beef:0:9903:14b:27e0:5744Done coaps connectedЗапустите команду
get, чтобы получить информацию о ресурсе:coaps get test-resourceDone 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 hellothereDone 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.