我们使用 socket.io 进行移动服务器通信。由于我们无法强制升级用户的设备,如果我们想升级到版本 1(非向后兼容),我们必须在服务器上处理这两个版本一段时间。
有什么选择?
我目前最喜欢的是将旧版本和新版本都包装在一个多路复用器中。它根据标头和查询参数检测传入请求的版本,从而知道要调用哪些函数。
另一个(更糟糕的)选项是将新版本包装在一个模块中,该模块可以在必要时将旧版本的协议转换为新版本(并再次返回)。这有一个严重的缺点。确保我已正确确定和处理所有微小差异将是一项耗时且不确定的工作。有些差异可能需要一些认真的按摩。
(如果你很好奇或者知道这对你有帮助,我们在 Go 中这样做。)
紫衣仙女
相关分类