Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to current chatterbox, add more flexible support for long running callback handlers #50

Closed
wants to merge 9 commits into from

Conversation

andymck
Copy link

@andymck andymck commented Feb 23, 2021

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:

  • update client side to use current chatterbox
  • revisit tests suite

@tsloughter
Copy link
Owner

Current chatterbox is https://github.com/tsloughter/chatterbox/

I haven't merged it into the upstream repo yet but that fork is required for grpcbox to work, it has both features and important bug fixes.

@andymck
Copy link
Author

andymck commented Feb 24, 2021

ok, my bad. I looked at that branch initially and concluded it was stale for some reason. I will recut my PR from master and carry across the non chatterbox update related changes.

@andymck
Copy link
Author

andymck commented Feb 25, 2021

superseded by #52

@andymck andymck closed this Feb 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants