2015-10-16 1 views
0

Je travaille actuellement sur le protocole IOT Coap. J'ai accédé au serveur sur l'hôte local via le plugin cuivre firefox. Ensuite, j'ai ajouté Resouce ayant "GET" fonctionnalité dans le serveur. Après cela, j'ai fait de son client une source de streaming. Voici le code du client de streamingCOAP en tant que source de streaming

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); 
     } 
    } 
} 

mais je suis face à un problème. Pendant le streaming, il suffit de lire une ressource une fois. après cela, il récupère tout le RDD vide et complète ses lots. Pendant ce temps, si la ressource change sa valeur, elle ne lit pas cela. Est-ce que je fais quelque chose de mal? ou existe-t-il d'autres fonctionnalités à lire lorsque la ressource est modifiée et que je peux la gérer dans mon récepteur personnalisé? ou une idée sur la façon d'obtenir de la valeur en continu pendant le streaming?

Toute aide est très attendue et appréciée. Thanks

Répondre

2

Le streaming de données est l'implémentation de l'application.

  • 1] Vous pouvez vous abonner à la ressource en tant qu'observateur. La fonctionnalité d'observateur doit être implémentée dans votre application.
  • 2] Vous pouvez envoyer des données en continu à intervalles via la fonctionnalité PUT.

Un bon OBSERVER exemple est fourni dans libcoap, où le client (cuivre firefox) observe la ressource "temps" du serveur (COAP-serveur). coap-server envoie en continu le message CON de l'heure et de la date au client, puisque le temps change très rapidement. À son tour, le client envoie un message ACK.

CoAP combiné à la fonctionnalité TCP est également mieux adapté pour le streaming de données.

+0

oui. @electrospark. Je l'ai réalisé de la même manière que tu l'as dit. Merci.!! – Sadaf

1

Il existe une fonctionnalité d'observation: elle permet aux clients CoAP de "s'abonner" aux ressources et aux serveurs pour envoyer des mises à jour aux clients abonnés lorsque la ressource souscrite par le client change pendant un certain temps. Voici le IEFT draft.