2015-08-05 11 views
5

Sto cercando di implementare una sorta di console di scrittura per tutti i miei attori. Ecco il mio codice:Come ricevere qualsiasi tipo di messaggio in Akka.Net Ricevi attore

class ConsoleWriterActor : ReceiveActor 
{ 
    public ConsoleWriterActor() 
    { 
     Receive<object>(s => 
     { 
      Console.WriteLine(s.ToString()); 
     } 
    } 
} 

Il problema è, in qualche modo il doesnt attore riceve alcun messaggio. Ho ottenuto questo ceppo da console:

[INFO][8/5/2015 7:30:06 AM][Thread 0013 [akka://SPBOActorSystem/user/ConsoleWriterActor] Message StartDbOperator from akka://SPBOActorSystem/user/DbOperatorActor to akka://SPBOActorSystem/user/ConsoleWriterActor was not delivered. 1 dead letters encountered.  

cosa è andato storto?

+0

mi scuso. L'attore della console è stato istanziato con diversi oggetti di scena. – himekami

risposta

7

Sembra che tu abbia risolto la domanda DeadLetters. Per rispondere alla tua domanda iniziale: Per ricevere qualsiasi messaggio nella ReceiveActor, utilizzare ReceiveAny (docs), in questo modo:

class ConsoleWriterActor : ReceiveActor 
{ 
    public ConsoleWriterActor() 
    { 
     ReceiveAny(o => Console.WriteLine("Received object: " + o)); 
    } 
} 
+1

Grazie. Non sapevo che ReceiveAny() esistesse. – himekami

Problemi correlati