Rust中的HTTP服务器推送(流)客户端?
由于缺少更好的示例,假设我想编写一个简单的具有Rust的客户端,它可以建立连接并从中接收数据。这可能吗?我一直在关注那些看起来不错的框架,但我认为它们还没有这个功能?http客户端支持增量读取响应(就像实现rust的Rust中的HTTP服务器推送(流)客户端?,rust,http-streaming,Rust,Http Streaming,由于缺少更好的示例,假设我想编写一个简单的具有Rust的客户端,它可以建立连接并从中接收数据。这可能吗?我一直在关注那些看起来不错的框架,但我认为它们还没有这个功能?http客户端支持增量读取响应(就像实现rust的Reader特性的任何东西一样),但我找不到任何东西来增量解析响应,或者实现twitter的特定协议(以\r\n结束OBJEC) 也就是说,我能够实现一个快速的“肮脏”概念验证: 编辑:查看并使用它 我用这个小小的sinatra应用程序来测试它: require 'sinatra'
Reader
特性的任何东西一样),但我找不到任何东西来增量解析响应,或者实现twitter的特定协议(以\r\n
结束OBJEC)
也就是说,我能够实现一个快速的“肮脏”概念验证:
编辑:查看并使用它
我用这个小小的sinatra应用程序来测试它:
require 'sinatra'
require 'json'
class Stream
def each
hash = { index: 0 }
loop do
hash[:index] += 1
yield hash.to_json + "\r\n"
sleep 0.5
end
end
end
get '/' do
Stream.new
end
我似乎无法编译它。。。获取
无法为“openssl sys v0.3.5”运行自定义生成命令进程未成功退出:'/home/user/code/hello\u rust/target/build/openssl-sys-6694e080744fb2e2/build script build'(状态=101)--stderr线程“”在“找不到openssl库”时陷入恐慌,/home/user/.cargo/registry/src/github.com-1ec6299db9ec823/openssl-sys-0.3.5/build.rs:46
@Caballero您似乎缺少一些openssl依赖项。我建议您看一看“谢谢”,完全忽略了libssl-dev
依赖项
#![feature(io)]
extern crate hyper;
extern crate "rustc-serialize" as rustc_serialize;
mod json_streamer;
use hyper::Client;
use std::old_io::BufferedReader;
use json_streamer::JsonObjectStreamer;
fn main() {
let mut client = Client::new();
let res = client.get("http://localhost:4567/").send().unwrap();
for obj in BufferedReader::new(res).json_objects() {
println!("object arrived: {}", obj);
}
}
require 'sinatra'
require 'json'
class Stream
def each
hash = { index: 0 }
loop do
hash[:index] += 1
yield hash.to_json + "\r\n"
sleep 0.5
end
end
end
get '/' do
Stream.new
end