【发布时间】:2020-02-12 09:58:00
【问题描述】:
我有通过 DataInputStream 连接到的第 3 方代码。第 3 方代码在生成信息时不断吐出信息。当遇到感兴趣的事情时,我想将其传递给 GraphQL 订阅
在这种情况下,我不确定如何将第 3 方代码连接到服务器端 GraphQL 订阅代码。任何建议,将不胜感激。
一些概念代码如下:
public void liveStream(DataInputStream in) {
// Sit and constantly watch input stream and report when messages come in
while(true) {
SomeMessage message = readFromInputStream(in);
System.out.println("Received Message Type:" + message.getType());
// Convert SomeMessage into the appropriate class based on its type
if (message.getType() == "foo") {
Foo foo = convertMessageToFoo(message);
} else if (message.getType() == "bar") {
Bar bar = convertMessageToBar(message);
} else if (howeverManyMoreOfThese) {
// Keep converting to different objects
}
}
}
// The client code will eventually trigger this method when
// the GraphQL Subscription query is sent over
VertxDataFetcher<Publisher<SomeClassTBD>> myTestDataFetcher() {
return new VertxDataFetcher<> (env, future) -> {
try {
future.complete(myTest());
} catch(Exception e) {
future.fail(e);
}
});
}
【问题讨论】:
-
这里是一个订阅github.com/vert-x3/vertx-examples/tree/master/…HTH的Vert.x GraphQL服务器示例
标签: java graphql vert.x graphql-java graphql-subscriptions