Abp + Grpc 怎么实现用户会话状态传递


这篇文章主要讲解了“Abp + Grpc 怎么实现用户会话状态传递”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Abp + Grpc 怎么实现用户会话状态传递”吧!在实际项目当中,我采用的是 Abp 框架,但是 Abp 框架官方并没有针对 Grpc 进行模块封装。基于此我结合 Abp 与 MagicOnion 封装了一个 Abp.Grpc 模块,它包括服务端和调用端两部分的包。通过这两个包,你可以很方便地在 Abp 框架当中集成 Grpc 实现服务内部通讯。但是在实际使用当中会出现一个问题,当 A 服务调用 B 服务的时候,A 服务当前登录用户为 admin,调用 B 服务的IAbpSession的值仍然为空,这个时候当 B 服务内部实现使用了IAbpSession时会出现问题。这是因为通过 Grpc 接口调用时,并没有传递诸如 Token 之类的东西,而在 B 香港云主机服务内部的IAbpSession本身附加的数据是从HttpContext里面获取的,所以 B 服务当前是没有用户状态的。所幸IAbpSession提供了一个Use方法,通过这个方法我们可以临时地改变IAbpSession内部的值,当 。定义如下:使用方法如下:这里 Abp.Grpc 库使用的是 MagicOnion 库实现 Grpc 接口的,底层序列化使用的是 MessagePack,速度也不比 Protocol Buffer 差。服务定义接口时,必须附加一个GrpcSession参数,这个参数用于调用方传递其IAbpSession值所使用。例如我有一个接口方法如下,用于返回服务方接收到的用户 Id 值。服务提供方在实现ITestGrpcService的时候,需要在代码起始点就开始使用using语句包裹代码。服务调用方则直接在调用 Grpc 接口的时候,传递给接口当前服务的 Session 状态。当客户端调用 GRPC 接口时,会将自身的 Session 状态通过 GrpcSession 传递到服务端,这样服务端就能够共享客户端的绘画状态。Abp.Grpc 库地址:https://github.com/GameBelial/Abp.Grpc服务端:https://github.com/GameBelial/Abp.Grpc.Server.Demo客户端:https://github.com/GameBelial/Abp.Grpc.Client.Demo原文地址:https://www.cnblogs.com/myzony/p/9454612.html感谢各位的阅读,以上就是“Abp + Grpc 怎么实现用户会话状态传递”的内容了,经过本文的学习后,相信大家对Abp + Grpc 怎么实现用户会话状态传递这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是开发云,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: JAVA中怎么去除对象中的空格

JAVA中怎么去除对象中的空格,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细 香港云主机讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用JAVA反射机制进行对象中字符串属性的空格去除 。注意:如果属性本身就是一个“ ”,也是…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/05 11:07
下一篇 08/05 11:08

相关推荐