//@Service
public class SseWebClient extends SseEventService {
private final WebClient client;
public SseWebClient(WebClient.Builder builder) {
this.client = builder.baseUrl("http://mbiolance-service-message")
.defaultHeader("Authorization","Bearer ADMIN-TEMPLATE")
.build();
}
@Override
public Mono<String> createEvent(LiveUpdate liveUpdate) {
return client.post().uri("/sse/events")
.body(Mono.just(liveUpdate),LiveUpdate.class)
.retrieve()
.bodyToMono(String.class);
}
}
@Configuration
public class WebClientConfig {
@LoadBalanced
@Bean
public WebClient.Builder register() {
return WebClient.builder();
}
// @LoadBalanced
// @Bean
// public WebReactiveFeign.Builder register(){
// return WebReactiveFeign.builder();
// }
// @Bean
// public ReactiveHttpRequestInterceptor r1() {
// return new ReactiveHttpRequestInterceptor() {
//
// @Override
// public Mono<ReactiveHttpRequest> apply(ReactiveHttpRequest t) {
// Map<String, String> headers = ThreadLocalUtil.getCurrentHeaders();
//// Map<String, String> requestMap = ThreadLocalUtil.get();
//// SysUserDto user = SysUserInfoContext.getUser();
// t.headers().put("Authorization", Arrays.asList("Bearer ADMIN-TEMPLATE"));
// return Mono.just(t);
// }
// };
// }
//////
// @Bean
// public ReactiveHttpRequestInterceptor kuaidiInterceptor() {
// Mono.empty().subscriberContext(context -> {
// Context context1 = context.put("key", "Hello");
// System.out.println((String) context1.get("key"));
// return context1;
// });
// return reactiveHttpRequest ->
// Mono.subscriberContext().map(ctx -> {
//// if (ctx.isEmpty()) {
//// return reactiveHttpRequest;
//// }
// reactiveHttpRequest.headers().put("Authorization",
// Arrays.asList("Bearer ADMIN-TEMPLATE"));
// return reactiveHttpRequest;
// });
//}
}