java web中的数组_java – Consumer(s) – Webserver中的生产者问题,流式传输数据数组...

据我了解,您需要向订阅者/客户端广播数据.

以下是我所知道的接近它的一些方法.

>纯Java解决方案,每个客户端都有一个BlockingQueue,每次广播消息时都会将它放在每个队列中.

for(BlockingQueue client: clients){

client.put(msg);

}

> RxJava提供reactive approach.客户将是订阅者,并且您有时间发出消息,订阅者将收到通知,他们可以选择取消订阅

Observable observable = Observable.create(sub->{

String[] msgs = {"msg1","msg2","msg3"};

for (String msg : msgs) {

if(!sub.isUnsubscribed()){

sub.onNext(msg);

}

}

if (!sub.isUnsubscribed()) { // completes

sub.onCompleted();

}

});

现在,多个订阅者可以选择接收消息.

observable.subscribe(System.out::println);

observable.subscribe(System.out::println);

Observable有点功能,他们可以选择他们需要的东西.

observable.filter(msg-> msg.equals("msg2")).map(String::length)

.subscribe(msgLength->{

System.out.println(msgLength); // or do something useful

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值