vs-streamjsonrpc
vs-streamjsonrpc copied to clipboard
The StreamJsonRpc library offers JSON-RPC 2.0 over any .NET Stream, WebSocket, or Pipe. With bonus support for request cancellation, client proxy generation, and more.
I've been getting several JSON errors on my server and have tracked them down to the client sending an empty message back; i.e. ``` { "jsonrpc": "2.0", "id": null, "result":...
After much fiddling I finally have a working proof of concept in F#. I wanted to share the code here to save the next person the headache. It would be...
When using `AddRemoteRpcTarget` to forward messages to another `JsonRpc` instance, calling methods that return an `IAsyncEnumerable` fails. This is because [JsonRpc.rpcTargetInfo.TryGetTargetMethod](https://github.com/microsoft/vs-streamjsonrpc/blob/6dc57e800961bf40bca23b87c5cf194f9e7c99d7/src/StreamJsonRpc/JsonRpc.cs#L1999) will always return a match for the special methods...
When returning a JSON-RPC error response, I suspect it would be a good play to block transmission of any exotic types. This is primarily because exotic types tend to pin...
**Repro:** 1) Create JsonRpc instance, e.g.: perhaps via brokered service, servicehub service. 2) Invoke long running request 3) Dispose RPC instance **Expected:** Clear indication of what the client is doing...
The dynamic proxies generated on the client raise events [with `sender` set to `this.rpc`](https://github.com/microsoft/vs-streamjsonrpc/blob/f35894c97cad9276ee12f6e8df7486b38cbfbe6d/src/StreamJsonRpc/ProxyGeneration.cs#L765) (the `JsonRpc` object behind the proxy). For a proxy holder, particularly one that has never seen...
Client proxy generation may be done at compile time via source generator. This modification could improve performance and add strong typed request for AOT environment(such as xamarin.ios)
It seems the library doesn't support timeouts at the moment which is very cumbersome if there are communication issues or errors on the other side. Assume there is a client...
When an RPC chain exists such that an RPC client invokes a server, which as part of serving that request makes its own RPC call, if the *second* server throws...
Per [this discussion](https://groups.google.com/g/json-rpc/c/l7m5SIvwnFs/m/iBzozsFjAQAJ) > Given https://w3c.github.io/trace-context-binary/ is already out there, it might be better to say something like > > When using a binary encoding (e.g. MessagePack) the trace-context values...