Coder Social home page Coder Social logo

Comments (6)

fafhrd91 avatar fafhrd91 commented on May 6, 2024

there are several options:

Resource::async handler

you can use https://actix.github.io/actix-web/actix_web/struct.Resource.html#method.async
in that case your handle needs to return Stream<Item=Frame>

Http actor

In that case you can define http actor, then you can use HttpContext to spawn any number of futures of streams.
here is simple example https://github.com/actix/actix-web/blob/master/examples/multipart/src/main.rs#L25

if you need more complex interaction, then you can define Message's and handle them as actix actor.
here is example how to add stream to your actor's context
https://github.com/actix/actix-web/blob/master/examples/websocket.rs#L33
then you can handle items from this stream in your Handler https://github.com/actix/actix-web/blob/master/examples/websocket.rs#L49

Api still is not very stable, especially simple async handlers. But actor's Handler seems works well.
While building SockJS server, I didn't have any problems. also I am working on http/2 support, and it seems no public api changes will be required.

I am open to any suggestions and you are welcome to join !

from actix-web.

glademiller avatar glademiller commented on May 6, 2024

Trying to implement using Resource.async. I created a function that I want to have return Stream<Item=Frame> but I'm unsure of how to get a Frame object. It doesn't appear to be public.

I suspect there is something simple I am missing. I'm not using Future yet but it should be easy enough to convert a Future into a stream as needed assuming I'm not misunderstanding what I need to do.

fn with_param(
    req: &mut HttpRequest,
    _payload: Payload,
    state: &(),
) -> impl Stream<Item = actix_web::route::Frame, Error = ()> {
    futures::stream::once(Ok(
        HttpResponse::builder(StatusCode::OK)
            .content_type("text/html")
            .body(format!("Hello {}!", req.match_info().get("name").unwrap()))
            .unwrap(),
    ))
}

from actix-web.

fafhrd91 avatar fafhrd91 commented on May 6, 2024

let me add example

from actix-web.

glademiller avatar glademiller commented on May 6, 2024

Thank you I really appreciate it. Thanks for having patience with me and for putting something as cool as Actix together.

from actix-web.

fafhrd91 avatar fafhrd91 commented on May 6, 2024

here is example https://github.com/actix/actix-web/blob/master/examples/basic.rs#L17
but you need to update actix-web to 0.2.1

I think Error=() is wrong choice.

from actix-web.

glademiller avatar glademiller commented on May 6, 2024

Agreed () is most certainly not the correct choice.

Thanks for exposing Frame and for the example. This is exactly what I needed.

from actix-web.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.