nanomsg crate 的示例不起作用
Example of nanomsg crate does not work
我尝试了 Rust nanomsg pubsub example,但它不起作用。
我在单独的控制台中执行了这些操作中的每一个 windows:
cargo run --example pubsub -- device hoge
显示
Subscribed to '[104, 111, 103, 101]'.
Device is ready.
cargo run --example pubsub -- client hoge
显示
Subscribed to '[104, 111, 103, 101]'.
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'.
...
所有三个命令都保持 运行,其中 none 个已退出。我希望控制台 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'.
...
但是什么也没有显示。
我的环境是
- Max OS X Sierra
- nanomsg 1.0.0
- rustc 1.16.0
这是服务器代码的问题,已在 master 分支 (#173). Here's the faulty snippet (from repo) 中修复:
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!
宏构建的,该宏错误地将主题打印为字节数组,而不是一段文本。不同的主题标识符导致没有订阅者收到消息。
该示例已由当前维护者修复 here。作为结束语,此 API 的用户必须记住,发布消息的第一个字节始终指的是订阅主题。
我尝试了 Rust nanomsg pubsub example,但它不起作用。
我在单独的控制台中执行了这些操作中的每一个 windows:
cargo run --example pubsub -- device hoge
显示
Subscribed to '[104, 111, 103, 101]'. Device is ready.
cargo run --example pubsub -- client hoge
显示
Subscribed to '[104, 111, 103, 101]'.
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'. ...
所有三个命令都保持 运行,其中 none 个已退出。我希望控制台 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'.
...
但是什么也没有显示。
我的环境是
- Max OS X Sierra
- nanomsg 1.0.0
- rustc 1.16.0
这是服务器代码的问题,已在 master 分支 (#173). Here's the faulty snippet (from repo) 中修复:
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!
宏构建的,该宏错误地将主题打印为字节数组,而不是一段文本。不同的主题标识符导致没有订阅者收到消息。
该示例已由当前维护者修复 here。作为结束语,此 API 的用户必须记住,发布消息的第一个字节始终指的是订阅主题。