Обработчик уведомлений данных onem2m не вызывается
Я новичок в onem2m и использую реализацию IoTDM Karaf для изучения начальных шагов. Я также использую пакет почтальона из того же проекта, что и инструмент обучения. Я могу делать операции CRUD и другие прямые операции из моего собственного кода (html,ajax,php). Я ознакомился со спецификацией документации (хотя и не полностью), а также с примером руководства для разработчиков по домашнему освещению и примерам реализации.
Теперь я застрял в том, что я успешно зарегистрировался для подписки с уведомлением uri "nu", указывающим на php на другом сервере apache в той же сети. Почтальон / Google Rest Client может публиковать данные на нем. Я даже добавил заголовок CORS, чтобы избежать каких-либо сомнений. Я указал "nu":http// полный IP/phpfile.php. Затем я создаю экземпляр контента из Почтальона. Я ожидаю, что мой php будет вызван. Это ожидание действительно?
Я просто сбрасываю данные поста в файл в моей папке /var/www/html. Это работает как ожидалось. Я протестировал написание небольшого HTML и запустил его с другого сервера. Так что это не проблема CORS или проблема доступа к файловой системе. Реализована ли реализация уведомлений? Меня интересует не сторона периферийных устройств IoT, а бэкэнд, где я хочу собирать данные с устройств. Я не вижу никаких примеров, детализирующих реализацию обработчика уведомлений как такового.
Любые указатели, даже если не прямой ответ, помогут. Заранее спасибо.
2 ответа
Большой скачок Я получил обработчик уведомлений, чтобы поразить мой php обратного вызова. Во-первых, я использовал "углеродный" выпуск ODL IoTDM. Затем мне пришлось установить функцию odl-iotdm-onem2m. Этот поставляется с odl-onem2m-notifier, который, я думаю, является отсутствующим компонентом на старом сервере. Теперь, когда я регистрирую подписку и добавляю экземпляр контента, вызывается мой php.
Я не вижу подтверждения запроса и других подобных советов от @akr. Я думаю, мне нужно найти более свежую реализацию сервера для этого. Но я думаю, на этот вопрос ответили.
Большое спасибо @akr за ваше терпение и ответы.
При создании ресурса <подписка> хост-CSE может отправить уведомление для проверки подписки. Получатель этой проверки - извещение UUR, установленное в <подписка>. Таким образом, CSE уверен, что получатель действительно может и должен обрабатывать уведомления.
Для этого приемник уведомлений (ваш скрипт PHP) должен быть запущен и правильно ответить на запрос validRequest, прежде чем вы создадите ресурс
Был ли ваш приемник уведомлений запущен и правильно ли он ответил на запрос проверки?
См. Также "TS-0004 - Спецификация базового протокола уровня обслуживания", глава "7.5.1.2.2 Уведомление для ресурсов <подписка>".
Обновить
Сервер уведомлений должен проверить содержимое запроса POST для элемента vrq. Это указывает на запрос проверки. Если сервер хочет принять запрос, он должен вернуть HTTP-код ошибки "200", а также заголовок ответа "X-M2M-RSC" со значением "2000".