客户端版本侦测 及 维护模式 的最佳实现方式?(及云函数读取Header的方式?)

如题,如果希望在云函数侦测客户端版本,如果版本过旧,或者后台在维护中的话禁止登陆的最佳实现方式是什么?

我们用的是.NET SDK。
目前的想法是在客户端透过 LCCore.HttpClient.AddAddtionalHeader("clientVersion","1.0.0"); 来在每个Request均提交客户端的版本,并且在所有云函数开始前都先从header读取客户端版本,如果版本过旧则throw LCException。

然而在实作时发现,目前好像没有办法从云函数读取Header?(我们需要在 OnLoginHook 及一般的云函数中读取Header来进行校对,但翻查 .Net SDK 的源码好像没支援这个功能)

会不会有更加好的实现方法吗?谢谢

AddAddtionalHeader() 是 SDK 内部用到的补丁方法,建议不要使用。
可以考虑在应用启动的第一个请求,去和云函数中做一个版本比对,如果不通过,则在客户端禁止后续操作。

1 人赞了这个帖子.

了解了,暂时先这样做吧。

之后会有计划追加读取Header的功能吗?
能够从云函数读取Header感觉会简化了许多全局功能的实现(不用手动在所有云函数追加对应的LCEngineParam)
除了客户端版本验证外,还可以用来做个 EnableLogging Flag,AB Testing等等

云函数是 LeanCloud 提供的一个 相对受限 的自定义服务器端逻辑的功能,和我们的 SDK 有比较 深度的集成。我们将云函数设计为一种类似 RPC 的机制,在云函数中你只能关注参数和结果,而不能自定义超时时间、HTTP Method、URL,不能读取和设置 Header。如果希望更加自由地使用这些 HTTP 的语义化功能,或者希望使用第三方的框架提供标准的 RESTful API,请使用云引擎的网站托管功能自行来处理 HTTP 请求。

https://leancloud.cn/docs/leanengine_faq.html#hash1551936369

所以后续应该不会加读取 Header 的能力,云函数是希望用户只关注请求和响应本身。

1 人赞了这个帖子.