[
https://issues.apache.org/jira/browse/YARN-8839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16669405#comment-16669405
]
Eric Yang commented on YARN-8839:
---------------------------------
In the current implementation, there is one control implemented. The structure
of the protocol is leading by number one, and follow by a JSON string, for
example, sending heartbeat looks like:
1{}
This is used to ping server to check if there is any output. We can use the
same format to set terminal size:
1{cols:80, rows:25}
The rest of the data stream are treated as byte array.
> Define a protocol exchange between websocket client and server for
> interactive shell
> ------------------------------------------------------------------------------------
>
> Key: YARN-8839
> URL: https://issues.apache.org/jira/browse/YARN-8839
> Project: Hadoop YARN
> Issue Type: Sub-task
> Components: nodemanager
> Reporter: Eric Yang
> Assignee: Eric Yang
> Priority: Major
> Labels: docker
>
> Running interactive shell is more than piping stdio from docker exec through
> a web socket. For enabling terminal based program to run, there are certain
> functions that work outside of stdio streams to the destination program. A
> couple known functions to improve terminal usability:
> # Resize terminal columns and rows
> # Set title of the window
> # Upload files via zmodem protocol
> # Set terminal type
> # Heartbeat (poll server side for more data)
> # Send keystroke payload to server side
> If we want to be on parity with commonly supported ssh terminal functions, we
> need to develop a set of protocols between websocket client and server.
> Client and server intercept the messages to enable functions that are
> normally outside of the stdio streams.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]