COAP как источник потоковой передачи

В настоящее время я работаю над протоколом IOT Coap. Я получил доступ к серверу на локальном хосте через медный плагин Firefox. Затем я добавил Resouce, имеющий "GET" функциональность на сервере. После этого я сделал его клиентом в качестве источника потоковой передачи. Вот код потокового клиента

 class customReceiver(test:String) extends  Receiver[String](StorageLevel.MEMORY_AND_DISK_2) with Logging with Serializable { 
   @volatile private var stopped = false
   override def onStart() {

      val client = new CoapClient("ip/resource")
      var text = client.get().getResponseText();  
      store(text)
   }
   override def onStop(): Unit = synchronized { 
      try
      {
         stopped = true
      }
      catch
      {
         case e: Exception => println("exception caught: " + e);
      }
   }
 }

но я столкнулся с проблемой. Во время потоковой передачи он просто читает ресурс один раз. после этого он выбирает все пустые rdd и завершает свои пакеты. Между тем, если ресурс меняет свое значение, он этого не читает. я делаю что-то не так? или есть ли какие-либо другие функции для чтения при изменении ресурса, которые я могу обработать в моем пользовательском приемнике.? или есть идеи о том, как получать значения непрерывно во время потоковой передачи?

Любая помощь очень ожидаема и ценится. Спасибо

2 ответа

Решение

Потоковая передача данных является реализацией приложения.

  • 1] Вы можете подписаться на ресурс в качестве наблюдателя. Функциональность наблюдателя должна быть реализована в вашем приложении.
  • 2] Вы можете непрерывно отправлять данные с интервалом, используя функцию PUT.

Хороший НАБЛЮДАТЕЛЬНЫЙ пример приведен в libcoapгде клиент (firefox copper) наблюдает за "временным" ресурсом сервера (coap-server). coap-server непрерывно отправляет сообщение CON о времени и дате клиенту, так как время меняется с точностью до секунды. В свою очередь, клиент отправляет сообщение ACK.

Также CoAP в сочетании с функциональностью TCP лучше подходит для потоковой передачи данных.

Существует функция наблюдения: она позволяет клиентам CoAP "подписываться" на ресурсы, а серверы отправлять обновления подписанным клиентам, когда ресурс, на который подписывается клиент, изменяется в течение определенного периода времени. Вот черновик IEFT.

Другие вопросы по тегам