实简单现websocket信道服务

本文讲述了在wafer停止维护后,为解决项目瘫痪问题,作者考虑并选择了重写信道服务。文章详细分析了两种方案:直接重写信道服务和整个项目重写,并讨论了各自优缺点。最终,作者决定将信道通信功能剥离成独立服务,设计了一个包含节点概念的信道服务,以实现水平扩展。文章还概述了实现信道服务的四个关键接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实简单现websocket信道服务

开端

之前有为一个项目做顾问工作,帮助解决了几个问题。该项目完全按照wafer解决方案做的,我在解决问题过程中,发现wafer信道容易出现消息丢失情况,当时由于金主预算有限,没有从根本上解决这个问题,只是做了些曲线救国的优化,然后继续将就着用。与此同时腾讯官方表态wafer整套解决方案都不再提倡,同时不再维护,希望开发者往小程序“云开发”的方向靠拢。

直到有一天,wafer信道停止了服务,导致整个项目瘫住,金主没辙了,又找到了我…

可选方案

为了生计,来活了,自己当然是考虑的,所以为金主想了两个方案:重写信道服务与重写项目。

重写信道服务

wafer不再维护,但原有的功能可以继续使用,只是不再提供信道服务,如果要让整个项目“复活”,可以选择再实现一个信道服务用来替代曾经的免费信道服务。

这个方案的优点是只需要专心解决技术问题,对项目原有业务的影响几乎为0,对金主而言成本一般。

但从开发的角度来看,缺点也比较明显:“需要严格适配已有的SDK”,wafer信道的参与方是server、tunnel-server与client,这其中与tunnel-server通信的双方都依赖wafer提供的SDK。要做到不影响业务代码,需严格适配这两个SDK,也就是要去仔细阅读SDK源码,然后定义tunnel-server的相关接口和参数,这对我而言并不是一件愉快的事。

重写项目

只是重新实现信道服务,金主担心不稳定,所以就咨询了一下重写的成本。我的评估是相差不大,因为重写,信道服务由自己定接口相较于适配SDK会快很多,而且整个项目的业务并不复杂,从零实现也比较快。

这里我个人也偏向于重写,因为老的代码质量我个人觉得很不靠谱,而且设计也不合理。比如对战匹配队列、用户对战信息等,竟然全放在内存中,这意味着无法部署多个实例,要知道金主的单机可是8核16G。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值