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

How to implement an RSocketRequest Client Handler in Typescript

我想实现一个客户端处理程序,它将接收我的服务器回调。以下 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),
});