-
Notifications
You must be signed in to change notification settings - Fork 143
Proposal: Use protocol defined in PROTOCOL.md #48
Comments
(quoting @dmcgowan fully from #38)
You are using it to discriminate between incoming requests, see https://github.com/dmcgowan/libchan/blob/interface_update/spdy/session.go#L99-L118 where the channels that does not have a parent are moved to the main receiver. This means that in node-land we need to have that parent id specified.
yes, there is no practical way for forcing a SPDY 'parent' stream through that interface. The API supported by node-spdy is HTTP-based on piggyback on node's http module, which means we don't have direct access to SPDY streams. The other solution is to ditch the HTTP-based thing (and use internal node-spdy stuff) or re-implement SPDY, but it's a major effort in any case. The problem is only for nested channels sent from the client, as the server can do 'push', which works as expected. |
From the PROTOCOL.md under Top Level Channels (we need section numbers!)
To do it the way you are suggesting involved changing the spec, which is fine. Since you are proposing not using the stream id, the question is would the byte stream reference id be appropriate, or require another identifier which is channel specific. If the reference id is going to be used, then channels will have to include a different header to specify it is a channel and whether it has a parent channel. |
I am proposing to use 'libchan-ref' for everything, enforcing that sentence as it is (or as I understand it). |
@mcollina implemented the above with an additional header for channels called 'libchan-parent-ref' dmcgowan@de99fa2 Also have a rebased rexec which uses this dmcgowan@3d21143 |
Thanks Derek. I'm traveling the next couple of days, I'll try it on monday. |
@dmcgowan from time to time your rexec server does not return anything on the embedded streams, both in the go and node versions. Anyway, it works, we are getting closer! Thanks for your awesome support! |
I would say open an issue but perhaps after the rexec is merged in. Are you able to reproduce it just after making repeated calls to longer-lived server? |
Here is the feeling: the server kicks out the status message before the copying of stdout is completed. I have this very same issue on the node counterparts, so it's kind of ok anyway. |
Moving protocol related discussion from #38 to here. This would follow the model Docker is adopting for large design changes, discussion is on the protocol and the PR is for code review and discussion related to whether it implements the proposal as defined.
Please read the PROTOCOL.md before commenting on this issue.
On going discussions
The text was updated successfully, but these errors were encountered: