Hi Asa, I don't think anyone has actually implemented TwoPartyVatNetwork over WebSockets yet -- at least, I haven't heard of anyone doing it. It certainly should be possible, though. First you'll need to decide if you want to reuse WebSocket message framing at all, or just throw away the frame boundaries and treat it as a byte stream. If you want to keep the framing, you'd probably need to implement a custom VatNetwork, since TwoPartyVatNetwork assumes an AsyncIoStream. If you go the byte stream approach, then the thing you need to do is implement AsyncIoStream as a wrapper around WebSocket. That should mostly be straightforward, assuming familiarity with the KJ async framework. Once you have that, you can pass it into TwoPartyVatNetwork.
If you're looking for example code that uses KJ HTTP, there is Sandstorm: https://github.com/sandstorm-io/sandstorm/blob/master/src/sandstorm/gateway.h However, that's real-world code, not a simple example. Unfortunately I haven't written any samples yet... I'd like to write better documentation for all of KJ soon... Let me know if you have more specific questions, and please keep us updated on your progress. :) -Kenton On Tue, Sep 18, 2018 at 10:58 PM Asa <[email protected]> wrote: > Are there any examples of the WebSocket service from compat/http.h that is > a self contained starting point? I am trying to get my head around how to > layer these components into a larger service. Basically I want to use rpc > over a websocket from the browser(via wasm) to a c++ service running a > TwoPartyVatNetwork. My current working implementation uses capnp > serialized structs in an async service(but not interfaces/rpc), from wasm > (compiled from c++) to a c++ asio websocket server. I separately brought > the ezrpc service up and extended the calc example, but now I want to > finish out the conversion and prototype how to replace my asio server. > > Any pointers on where to look for more TwoPartyVatNetwork implementations > and/or docs would be great. Especially on how to save some state like a jwt > token ( via an auth capability?) in the open websocket, or if there is an > example somewhere of TwoPartyVatNetwork over websockets. > > Thanks in advance. > > Asa > > -- > You received this message because you are subscribed to the Google Groups > "Cap'n Proto" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > Visit this group at https://groups.google.com/group/capnproto. > -- You received this message because you are subscribed to the Google Groups "Cap'n Proto" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. Visit this group at https://groups.google.com/group/capnproto.
