use of com.yahoo.elide.graphql.subscriptions.websocket.protocol.Next in project elide by yahoo.
the class SubscriptionWebSocketTestClient method onMessage.
@OnMessage
public void onMessage(String text) throws Exception {
JsonNode type = mapper.readTree(text).get("type");
MessageType messageType = MessageType.valueOf(type.textValue().toUpperCase(Locale.ROOT));
switch(messageType) {
case CONNECTION_ACK:
{
Integer id = 1;
for (String query : queries) {
Subscribe subscribe = Subscribe.builder().id(id.toString()).payload(Subscribe.Payload.builder().query(query).build()).build();
session.getBasicRemote().sendText(mapper.writeValueAsString(subscribe));
id++;
}
break;
}
case NEXT:
{
Next next = mapper.readValue(text, Next.class);
results.add(next.getPayload());
expectedNumberOfMessages--;
if (expectedNumberOfMessages <= 0) {
sessionLatch.countDown();
}
break;
}
case PING:
{
expectedNumberOfSubscribes--;
if (expectedNumberOfSubscribes <= 0) {
subscribeLatch.countDown();
}
break;
}
case ERROR:
{
Error error = mapper.readValue(text, Error.class);
log.error("ERROR: {}", error.getPayload());
sessionLatch.countDown();
break;
}
default:
{
break;
}
}
}
use of com.yahoo.elide.graphql.subscriptions.websocket.protocol.Next in project elide by yahoo.
the class RequestHandler method safeSendNext.
protected void safeSendNext(ExecutionResult result) {
log.debug("Sending Next {}", result);
ObjectMapper mapper = elide.getElideSettings().getMapper().getObjectMapper();
Next next = Next.builder().result(result).id(protocolID).build();
try {
sendMessage(mapper.writeValueAsString(next));
} catch (JsonProcessingException e) {
log.error("UNEXPECTED Json Serialization Error {}", e.getMessage());
safeClose();
}
}
Aggregations