Update to current chatterbox, add more flexible support for long running callback handlers #50
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Linked grpcbox_plugin PR: tsloughter/grpcbox_plugin#13
This PR brings grpcbox up to date with current chatterbox and adds support for a number of additional features which should make for more flexible and deeper integration of grpcbox at the application level.
The changes originate from use cases encountered at helium and in integrating this lib into the helium stack. That said I believe the changes are general purpose enough to become part of the mainline branch. Some work still to do, including updating the client to work with latest chatterbox and also updating test suite but opening PR now to get some feedback and review. Hopefully I havent gone off in a tangent or down some undesirable route.
The server side changes here have been tested as part of the helium stack and using another erlang grpc client from Bluehouse Technology.
Change Summary
Update server side functionality to use current version of chatterbox and current h2 stream callbacks
Easier support long running application callback handlers when dealing with streaming connections. Handlers can return the 'continue' directive and in doing so grpcbox will keep the stream active rather than assume the handler is done and terminate
Allow info messages to be threaded from stream to application callback handlers. Allows applications to route messages to application callback handlers when utilising long running handlers
Allow application callback handlers to define & maintain their own state within the context of the grpcbox stream. Pass state with all calls to application handler callbacks.
TODO: