[
https://issues.apache.org/jira/browse/SSHD-780?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16220042#comment-16220042
]
MayDay edited comment on SSHD-780 at 10/26/17 8:09 AM:
-------------------------------------------------------
[~lgoldstein] Thanks
1、If the server is out of my control,how to make the heartbeat( which send a
request and don't wait for the reponse) useful.
2、the default heartbeat buffer is {color:#205081}false {color}(see
{code:java}ClientConnectionService#sendHeartbeat{code}).
Accoding the {color:#205081}rfc4254{color}, The recipient will respond to this
message with SSH_MSG_REQUEST_SUCCESS or SSH_MSG_REQUEST_FAILURE if 'want
reply' is {color:#205081}TRUE{color}. Is it a bug? (ifset false,the
server will not reponse)
{code:java}
protected IoWriteFuture sendHeartBeat() {
ClientSession session = getClientSession();
String request =
session.getStringProperty(ClientFactoryManager.HEARTBEAT_REQUEST,
ClientFactoryManager.DEFAULT_KEEP_ALIVE_HEARTBEAT_STRING);
try {
Buffer buf =
session.createBuffer(SshConstants.SSH_MSG_GLOBAL_REQUEST, request.length() +
Byte.SIZE);
buf.putString(request);
buf.putBoolean(false);
return session.writePacket(buf);
} catch (IOException e) {
if (log.isDebugEnabled()) {
log.debug("Error (" + e.getClass().getSimpleName() + ") sending
keepalive message=" + request + ": " + e.getMessage());
}
Throwable t = e;
return new AbstractIoWriteFuture(request, null) {
{
setValue(t);
}
};
}
}
{code}
was (Author: mayday):
1、If the server is out of my control,how to make the heartbeat( which send a
request and don't wait for the reponse) useful.
2、the default heartbeat buffer is {color:#205081}false {color}(see
{code:java}ClientConnectionService#sendHeartbeat{code}).
Accoding the {color:#205081}rfc4254{color}, The recipient will respond to this
message with SSH_MSG_REQUEST_SUCCESS or SSH_MSG_REQUEST_FAILURE if 'want
reply' is {color:#205081}TRUE{color}. Is it a bug? (ifset false,the
server will not reponse)
{code:java}
protected IoWriteFuture sendHeartBeat() {
ClientSession session = getClientSession();
String request =
session.getStringProperty(ClientFactoryManager.HEARTBEAT_REQUEST,
ClientFactoryManager.DEFAULT_KEEP_ALIVE_HEARTBEAT_STRING);
try {
Buffer buf =
session.createBuffer(SshConstants.SSH_MSG_GLOBAL_REQUEST, request.length() +
Byte.SIZE);
buf.putString(request);
buf.putBoolean(false);
return session.writePacket(buf);
} catch (IOException e) {
if (log.isDebugEnabled()) {
log.debug("Error (" + e.getClass().getSimpleName() + ") sending
keepalive message=" + request + ": " + e.getMessage());
}
Throwable t = e;
return new AbstractIoWriteFuture(request, null) {
{
setValue(t);
}
};
}
}
{code}
[~lgoldstein]
> How does the HeartBeat work?
> ----------------------------
>
> Key: SSHD-780
> URL: https://issues.apache.org/jira/browse/SSHD-780
> Project: MINA SSHD
> Issue Type: Question
> Affects Versions: 1.4.0
> Environment: jdk1.8.0
> Reporter: MayDay
>
> How does the HeartBeat work?
> it only send keepAlive every interal time,but not to check the reply of the
> keepAlive timeout.
> how does the client know that the server is available.
> Or does other param need to set to make the client heartbeat work?
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)