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

bidirectional support #15

Open
jmptrader opened this issue Nov 18, 2015 · 3 comments
Open

bidirectional support #15

jmptrader opened this issue Nov 18, 2015 · 3 comments

Comments

@jmptrader
Copy link

Powerfull code.

You have in your roadmap the bidirectional support.

-- x --
I work in an simple server that resolve transactions and route message between different peers in bidirectional mode.

You can imagine, the lots concerns and pitfalls when using tcpsockets, channels, goroutines and so on.

It's like many services with an central coordinator.

--- x ---
I can assign an port to each service, and set it's to server-RPC, and an client-RPC to Server-resolver.

Finally, the Server-resolver it's an client-RPC of all services.

Please, your comments.

Thank's.
JM

@valyala
Copy link
Owner

valyala commented Nov 19, 2015

Unfortunately gorpc architecture requires major redesign for decent bidirectional RPC support. This may break existing apps.

Currently I have plans to design and create yet another RPC package from scratch with bidirectional RCP support from the day one (it already has a name - fastrpc :) ). Fastrpc will have the following new features comparing to gorpc:

  • bidirectional RPC
  • lower CPU and memory overhead
  • network channels and byte streams with flow control (probably - this requires additional research).

@gyf19
Copy link
Contributor

gyf19 commented Dec 22, 2015

+1

@bits01
Copy link

bits01 commented Jan 12, 2016

For bidirectional RPC on the same connection, yamux or muxado could work well. They can also solve the problem where one side is behind a firewall/NAT and the other side is not and you can only establish connections in one direction only.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants