私は現在、IOT Coap プロトコルに取り組んでいます。銅の Firefox プラグインを介して、ローカル ホスト上のサーバーにアクセスしました。次に、サーバーに「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);
}
}
}
しかし、私は問題に直面しています。ストリーミング中は、リソースを 1 回だけ読み取ります。その後、すべての空の rdd をフェッチし、バッチを完了します。一方、リソースがその値を変更した場合、それは読み取られません。私は何か間違ったことをしていますか?または、カスタムレシーバーで処理できるリソースが変更されるたびに読み取る他の機能が存在しますか? または、ストリーミング中に継続的に値を取得する方法について何か考えはありますか?
どんな助けも大いに待っていて、感謝しています。ありがとう