2013-06-11 2 views

答えて

2

アクターがソケットから直接読み書きできるようにしますか?適切なアクターベースのIO抽象化はまだ実装されていませんが、libcppaの次のバージョン(予定調整中)の予定された機能です。アクターをネットワーク経由でのみ配布したい場合は、publish/remote_actor関数のペアを見てください。

/編集:今のところ

、あなたは、ブロッキングバージョンアップとランニングを取得するためにlibcppaのユーティリティのいくつかを使用することができます。

using namespace cppa; 
spawn<detached>([] { 
    auto ack = network::ipv4_acceptor::create(4242); 
    for (;;) { 
     auto spair = ack->accept_connection(); 
     spawn<detached>([spair] { 
      // spair.first is the input stream 
      // spair.second is the output stream 
      // please see http://neverlord.github.io/libcppa/namespacecppa_1_1network.html 
     }); 
    } 
); 

あなたが作成されますので、これは、うまくない規模を行います1つの接続につきスレッド、それはあまりエレガントではありません。さらに、ソケット経由で受信したメッセージと他のアクターから受信したメッセージを多重化するのは難しいです。より洗練されたソリューションが進行中です。 ;)

+0

ありがとう@neverlord。私は実際に接続ごとに俳優が欲しいので、それは素晴らしいと私はポーリングを使用するので、ブロックされません。良い仕事を続けてください。 IOベースのアクターを試すのを待つことはできません:) zeromqベースのアクターを追加する計画はありますか? –

+0

ZeroMQはToDoリストにありませんが、libcppaはオープンソースです。おそらく実装に貢献したいと思うかもしれません。 ;) – neverlord