为什么不能通过quarkus.io中的@Produces(MediaType.SERVER_SENT_EVENTS)将第二个客户端连接到服务?

时间:2019-11-22 20:18:16

标签: apache-kafka kafka-consumer-api quarkus smallrye-reactive-messaging

我叫维克多。 我有一个具有 quarkus-smallrye-reactive-messaging-kafka quarkus-resteasy 依赖关系的quarkus应用程序。

我的 read-proj 中有此服务。此类从kafka频道: house 中读取,并将其通过Publiser公开给rest服务。如果路径参数:“名称”等于传入房屋,则代码返回房屋:

@Path("/house")
public class StreamHouse {

    @Inject @Channel("house")
    Publisher<JsonObject> housePublisher;

    @Path("/new/{name}")
    @GET
    @Produces(MediaType.SERVER_SENT_EVENTS)
    //@SseElementType("text/plain")
    public Publisher<JsonObject> sinkToHttp(@PathParam("name") String name){
        return ReactiveStreams.fromPublisher(housePublisher)
                .map(house -> {
                    String inputName = house.getString("name");
                    if(inputName.equals(name)){
                        return house;
                    }else{
                        return null;
                    }
                })
                .buildRs();
    }
}

在我的 write-proj 中,在同一个Kafka服务器中的频道 house 中放置了一个房子。

第一个连接:  curl localhost:8768 / house / new / houseName_1,将我发送到房子...这样可以正常工作!

具有相同curl指令的第二个连接不会向我发送任何信息,并在几秒钟后关闭该连接

这是正常现象吗?

我正在使用quarkus 1.0.0.CR2版本

在另一方面,我具有 write-proj read-proj 相同的结构,但只有一个名为 all-proj 的项目>但由类和包分开,我可以连接 同一Curl指令中使用两个或三个或任意数量的客户端。

为什么当我分离代码时我无法与许多客户端连接?

我需要一些特别的技巧吗?

非常感谢!

0 个答案:

没有答案