private void sendCloseMessage(CloseReason closeReason) {
// 125 is maximum size for the payload of a control message
ByteBuffer msg = ByteBuffer.allocate(125);
CloseCode closeCode = closeReason.getCloseCode();
// CLOSED_ABNORMALLY should not be put on the wire
if (closeCode == CloseCodes.CLOSED_ABNORMALLY) {
// PROTOCOL_ERROR is probably better than GOING_AWAY here
msg.putShort((short) CloseCodes.PROTOCOL_ERROR.getCode());
} else {
msg.putShort((short) closeCode.getCode());
}
String reason = closeReason.getReasonPhrase();
if (reason != null && reason.length() > 0) {
appendCloseReasonWithTruncation(msg, reason);
}
msg.flip();
try {
wsRemoteEndpoint.startMessageBlock(Constants.OPCODE_CLOSE, msg, true);
} catch (IOException ioe) {
handleCloseException(ioe, closeCode);
} catch (WritePendingException wpe) {
handleCloseException(wpe, closeCode);
} finally {
webSocketContainer.unregisterSession(localEndpoint, this);
}
}
WsSession.java 文件源码
java
阅读 28
收藏 0
点赞 0
评论 0
项目:apache-tomcat-7.0.73-with-comment
作者:
评论列表
文章目录