1

我现在在我的spring项目中收到一个rsocket连接,然后我想获取它的远程地址和端口,我应该怎么获取呢?类似于使用socket.getRemoteSocketAddress()获取socket的远程地址。

@ConnectMapping
public void connectMapping(RSocketRequester requester) {
    // there is a resockt connect, how can i get the remote host from it
    RSocket rSocket = requester.rsocket();
    // TODO
    logger.info("host port");
}
4

1 回答 1

0

不幸的是,我认为即使您在@ConnectMapping 或@MessageMapping 方法中获取RSocketRequester,它也是一个内部细节。io.rsocket.core.RSocketRequester 通过 RequesterResponderSupport 持有 DuplexConnection,它表示通过 tcp、web 套接字或进程内的连接。它不通过公共 API 公开。

这是一个有价值的请求,但除非我遗漏了一些明显的东西,否则您需要提交功能请求才能添加它。

目前尚不清楚https://docs.spring.io/spring-boot/docs/2.3.0.RELEASE/api/org/springframework/boot/rsocket/server/RSocketServerCustomizer.html中有一个钩子让您会看到 DuplexConnection(tcp 或 web 套接字等)已建立。

于 2021-03-03T06:10:36.897 回答