2017-03-20 5 views
3

私はRustナノムpubsub exampleを試しましたが、うまくいきません。ナノクラムクレートの例は機能しません

私は別のコンソールウィンドウで、これらの操作のそれぞれをした:

  1. cargo run --example pubsub -- device hoge

    それは

    を示し

    Subscribed to '[104, 111, 103, 101]'. 
    Device is ready. 
    
  2. cargo run --example pubsub -- client hoge

    を示し

    Subscribed to '[104, 111, 103, 101]'. 
    
  3. cargo run --example pubsub -- server hoge

    それは

    Server is ready. 
    Published '[104, 111, 103, 101] #1'. 
    Published '[104, 111, 103, 101] #2'. 
    Published '[104, 111, 103, 101] #3'. 
    ... 
    

を示してすべての3つのコマンドが実行中のまま、それらのどれも終了しません。私はコンソール2に次のように表示することを期待しました:

Subscribed to '[104, 111, 103, 101]'. 
Recv '[104, 111, 103, 101] #1'. 
Recv '[104, 111, 103, 101] #2'. 
Recv '[104, 111, 103, 101] #3'. 
... 

何も表示されませんでした。

私の環境では、それが既にされているサーバ・コードの問題であった

  • マックスOS Xシエラ
  • nanomsg 1.0.0
  • rustc 1.16.0
+1

これを再現できます。正直言って実際の例では本当に問題になる可能性があるので、私は問題を提出しました:https://github.com/thehydroimpulse/nanomsg.rs/issues/173 –

答えて

5

ですマスターブランチ(#173)で固定されています。

let msg = format!("{:?} #{}", topic, count); 
match socket.write_all(msg.as_bytes()) { 
    Ok(..) => println!("Published '{}'.", msg), 
    Err(err) => { 
     println!("Server failed to publish '{}'.", err); 
     break 
    } 
} 

発表されたメッセージが不適切バイトの配列ではなく、テキストのスライスとして話題をかなり-印刷されたformat!マクロを使用して構築されました:ここでは障害のあるスニペット(from repo)があります。別のトピック識別子が原因で、メッセージを受信して​​いるサブスクライバが見つかりませんでした。

この例は、現在のメンテナーによってhereに固定されています。最後の注意として、このAPIのユーザーは、パブリッシュメッセージの最初のバイトは常にサブスクリプショントピックを参照することに注意する必要があります。

関連する問題