signalR 获取客户端的地址

2023年8月4日 744点热度 0人点赞 0条评论
内容纲要

在 signalR 中如需获取客户端的连接信息,可以使用 IHttpConnectionFeature 获取客户端通讯的 IP 和端口。

            // 获取服务
            var feature = Context.Features.Get<IHttpConnectionFeature>();
            var httpContext = Context.GetHttpContext();

            ArgumentNullException.ThrowIfNull(feature);
            ArgumentNullException.ThrowIfNull(httpContext);

            // header 查询信息
            var clientIdSV = httpContext.Request.Headers["ClientId"];
            var clientId = clientIdSV.FirstOrDefault();
            ArgumentNullException.ThrowIfNull(clientId);

            // 获取客户端通讯地址
            var remoteAddress = feature.RemoteIpAddress;
            ArgumentNullException.ThrowIfNull(remoteAddress);
            var remotePort = feature.RemotePort;

如果要获取客户端 Hub 的 ConnectionId,可以使用

base.Context.ConnectionId

痴者工良

高级程序员劝退师

文章评论