in src/main/java/com/microsoft/azure/proton/transport/ws/impl/WebSocketImpl.java [251:296]
private boolean sendToUnderlyingInput() {
boolean readComplete = false;
switch (lastType) {
case WEB_SOCKET_MESSAGE_TYPE_UNKNOWN:
case WEB_SOCKET_MESSAGE_TYPE_CHUNK:
wsInputBuffer.position(wsInputBuffer.limit());
wsInputBuffer.limit(wsInputBuffer.capacity());
break;
case WEB_SOCKET_MESSAGE_TYPE_AMQP:
wsInputBuffer.flip();
int bytes2 = pourAll(wsInputBuffer, underlyingInput);
if (bytes2 == Transport.END_OF_STREAM) {
tailClosed = true;
}
//underlyingInput.process();
wsInputBuffer.compact();
wsInputBuffer.flip();
readComplete = true;
break;
case WEB_SOCKET_MESSAGE_TYPE_CLOSE:
wsInputBuffer.flip();
pingBuffer.put(wsInputBuffer);
webSocketState = WebSocketState.PN_WS_CONNECTED_CLOSING;
wsInputBuffer.compact();
wsInputBuffer.flip();
readComplete = true;
break;
case WEB_SOCKET_MESSAGE_TYPE_PING:
wsInputBuffer.flip();
pingBuffer.put(wsInputBuffer);
webSocketState = WebSocketState.PN_WS_CONNECTED_PONG;
wsInputBuffer.compact();
wsInputBuffer.flip();
readComplete = true;
break;
default:
assert false : String.format("unexpected value for WebSocketFrameReadState: %s", lastType);
}
wsInputBuffer.position(wsInputBuffer.limit());
wsInputBuffer.limit(wsInputBuffer.capacity());
return readComplete;
}