private void buildAndSendResponse(final Response<Object> response, long now) { if (outputMessages.size() == 0 && response == null) { return; } String returnAddress = response != null ? response.returnAddress() : null; List<Response<Object>> messages = new ArrayList<>(outputMessages.size() + 1); Response<Object> currentMessage = outputMessages.poll(); while (currentMessage != null) { returnAddress = currentMessage.returnAddress(); messages.add(currentMessage); currentMessage = outputMessages.poll(); } if (response != null) { messages.add(response); } if (returnAddress != null) { final String returnAddr = returnAddress; protocolEncoderThreadPool.execute(() -> { @SuppressWarnings("unchecked") final String textMessage = encoderRef.get().encodeResponses(returnAddr, messages); serverWebSocket.getSender().sendText(textMessage); }); } lastSend = now; }
public List<MethodCall<Object>> createMethodCallListToBeParsedFromBody( final String addressPrefix, final Object body, final Request<Object> originatingRequest) { List<MethodCall<Object>> methodCalls; if (body != null) { methodCalls = parserRef.get().parseMethodCalls(addressPrefix, body.toString()); } else { methodCalls = Collections.emptyList(); } if (methodCalls == null || methodCalls.size() == 0) { if (originatingRequest instanceof WebSocketMessage) { WebSocketMessage webSocketMessage = ((WebSocketMessage) originatingRequest); final Response<Object> response = ResponseImpl.response(-1, Timer.timer().now(), "SYSTEM", "ERROR", "CAN'T HANDLE CALL", originatingRequest, true); final WebSocketSender sender = webSocketMessage.getSender(); sender.sendText(encoderRef.get().encodeResponses("SYSTEM", Lists.list(response))); } return Collections.emptyList(); } //noinspection Convert2streamapi for (MethodCall<Object> methodCall : methodCalls) { if (methodCall instanceof MethodCallImpl) { MethodCallImpl method = ((MethodCallImpl) methodCall); method.originatingRequest(originatingRequest); } } return methodCalls; }
@Override public void sendText(final String body) { httpSendWebSocketCalled.set(true); periodicFlushCallback.accept(null); final List<MethodCall<Object>> methodCalls = QBit.factory().createProtocolParser().parseMethodCalls("", body); serviceBundle.call(methodCalls); serviceBundle.flush(); Sys.sleep(100); if (response != null) { if (response.wasErrors()) { puts("FAILED RESPONSE", response); } else { String simulatedMessageFromServer = QBit.factory().createEncoder().encodeResponses("", Lists.list(response)); webSocket.onTextMessage(simulatedMessageFromServer); } } else { puts(response); } } };
private void buildAndSendResponse(final Response<Object> response, long now) { if (outputMessages.size() == 0 && response == null) { return; } String returnAddress = response != null ? response.returnAddress() : null; List<Response<Object>> messages = new ArrayList<>(outputMessages.size() + 1); Response<Object> currentMessage = outputMessages.poll(); while (currentMessage != null) { returnAddress = currentMessage.returnAddress(); messages.add(currentMessage); currentMessage = outputMessages.poll(); } if (response != null) { messages.add(response); } if (returnAddress != null) { final String returnAddr = returnAddress; protocolEncoderThreadPool.execute(() -> { @SuppressWarnings("unchecked") final String textMessage = encoderRef.get().encodeResponses(returnAddr, messages); serverWebSocket.getSender().sendText(textMessage); }); } lastSend = now; }
public List<MethodCall<Object>> createMethodCallListToBeParsedFromBody( final String addressPrefix, final Object body, final Request<Object> originatingRequest) { List<MethodCall<Object>> methodCalls; if (body != null) { methodCalls = parserRef.get().parseMethodCalls(addressPrefix, body.toString()); } else { methodCalls = Collections.emptyList(); } if (methodCalls == null || methodCalls.size() == 0) { if (originatingRequest instanceof WebSocketMessage) { WebSocketMessage webSocketMessage = ((WebSocketMessage) originatingRequest); final Response<Object> response = ResponseImpl.response(-1, Timer.timer().now(), "SYSTEM", "ERROR", "CAN'T HANDLE CALL", originatingRequest, true); final WebSocketSender sender = webSocketMessage.getSender(); sender.sendText(encoderRef.get().encodeResponses("SYSTEM", Lists.list(response))); } return Collections.emptyList(); } //noinspection Convert2streamapi for (MethodCall<Object> methodCall : methodCalls) { if (methodCall instanceof MethodCallImpl) { MethodCallImpl method = ((MethodCallImpl) methodCall); method.originatingRequest(originatingRequest); } } return methodCalls; }