微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Typescript 中实现 RSocketRequest 客户端处理程序

如何解决如何在 Typescript 中实现 RSocketRequest 客户端处理程序

我想实现一个客户端处理程序,它将接收我的服务器回调。以下 tutorial 提供了如何在 Java 中处理来自服务器的回调的想法:

@Slf4j
class ClientHandler {
 
 @MessageMapping("client-status")
 public Flux<String> statusUpdate(String status) {
   log.info("Connection {}",status);
   return Flux.interval(Duration.ofSeconds(5)).map(index -> String.valueOf(Runtime.getRuntime().freeMemory()));
 }
}

我被困在这里想知道如何在打字稿中实现类似的东西。我在前端使用 Angular。任何帮助将不胜感激。

解决方法

这个例子有一个简单的回显响应器,它允许服务器向客户端发起请求。

https://github.com/rsocket/rsocket-js/blob/c539b3a42d56780011392fc06ebd488d09f929da/packages/rsocket-examples/src/LeaseClientExample.js

class EchoResponder implements Responder<string,string> {
  metadataPush(payload: Payload<string,string>): Single<void> {
    return Single.error(new Error('not implemented'));
  }

  fireAndForget(payload: Payload<string,string>): void {
    logRequest('fire-and-forget',payload);
  }

因此您可以连接套接字,而不是从客户端->服务器发起任何请求,而是等待服务器->客户端请求。

const client = new RSocketClient({
  setup: {
    dataMimeType: 'text/plain',keepAlive: 1000000,lifetime: 100000,metadataMimeType: 'text/plain',},responder: new EchoResponder(),leases: () =>
    new Leases()
      .receiver(receivedLeasesLogger)
      .sender(stats => periodicLeaseSender(10000,7000,10)),transport: getClientTransport(address.host,address.port),});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。