wafer信道的不可靠性
wafer - 企业级微信小程序全栈方案
近期帮他人处理了一个与wafer信道有关的技术问题,通过了解wafer信道相关内容,自己也对websocket也多了些认识,本文捋一捋自己这次经历以及收获。
问题场景
一个双人问答对战的小程序,多轮对战的过程中某一方可能出现卡住的情况,由于是第一次接触这个项目,花了些时间摸清技术大概:
小程序使用一个叫wafer的腾讯云SDK做的,服务器也是用腾讯云提供的小程序解决方案,业务上对战双方通过websocket连接服务器,由服务器派发问题,对战双方作答
核心信息大概就是这些,在看了下项目代码后,感觉腾讯云真是想尽办法为程序员降低了开发复杂度,有点像是DreamWave与前端开发,我也就像一个前端工程师初次接触DreamWave一样,有点茫然。
花了好一会才知道wafer大概是个什么东西,以及wafer信道的工作原理,具体可以参考这篇文章。
问题分析
最初听完问题的描述后,猜测可能是没有收到服务器发过来的问题消息,然后出现卡住情况。在检查一遍代码后发现这个逻辑确实成立,随后先从代码着手找原因。
wafer信道方案
先简单介绍一下wafer的信道方案如何使用websocket通信,一共三个参与方,client、server与third-server(腾讯云PaaS服务),交互是client与third-server建立websocket连接,third-server使用http与server通信。
client发送消息给server:
c

本文探讨了wafer信道在微信小程序中出现的不可靠性问题,包括client与third-server间的websocket通信故障,特别是invalidTunnelIds问题。通过分析和调试,发现可能是third-server的不可靠导致消息丢失,采取了消息重发策略作为临时解决方案。此外,文章还讨论了在没有第三方服务器时,直接使用websocket的可靠性问题以及TCP-ACK机制的重要性。
最低0.47元/天 解锁文章
2746

被折叠的 条评论
为什么被折叠?



