简介
有时候,我们可能会希望在远程过程调用中对通讯的一些细节有更多的控制,比如对传输中的数据进行加密、压缩、签名、跟踪、协议转换等等,但是又希望这些工作能够跟服务函数/方法本身可以解耦。这个时候,Hprose 过滤器就是一个不错的选择。
Hprose 过滤器是一个接口,它有两个方法:
- type Filter interface {
- InputFilter(data []byte, context Context) []byte
- OutputFilter(data []byte, context Context) []byte
- }
其中 InputFilter
的作用是对输入数据进行处理,OutputFilter
的作用是对输出数据进行处理。
data
参数就是输入输出数据,返回值表示已经处理过的数据,如果你不打算对数据进行修改,你可以直接将 data
参数作为返回值返回。
context
参数是调用的上下文对象,它用来在客户端或服务器端的整个调用流程中前后传递数据,有一点需要注意,客户端的 context
数据并不会传给服务器端的 context
,客户端和服务器端的 context
是独立的。
原文:
https://github.com/hprose/hprose-golang/wiki/Hprose-%E8%BF%87%E6%BB%A4%E5%99%A8