背景
公司预计与本月末对接深圳市某通讯服务厂商,场景为用户在PC端页面点击拨打按钮然后调用厂商提供的API接口,线路厂商提前对接到通讯厂商,达成用户不需要借助硬件,完成SIP软电话通讯。
思路
一开始的方案是受思路局限性,通讯厂商可以填写后端接口回调地址,但是推送接口的话只有一个,例如通话事件、通话录音的回调等只能通过厂商提供的一个接口来回调,在处理这些事件的问题上,也会出现不是一一对应这么一个问题,例如系统有多个用户在同时拨打电话,拨打的时间上各有差异所以会造成有的录音上传的快,有的录音上传的慢等问题,先上传的先对照起来的话会造成了录音和实际的通话记录一一不对照的问题,故此为了解决这个问题的时候,可谓是煞费苦心,一开始的处理方式其实是通过redis来处理这种问题的,但是redis有内存消耗的限制,故此会导致内存泄漏等问题出现。
最终方案
通过websocket的长链接机制来实现前后端通讯的目的,后端提供接口,前端监听接口,就达到了一种后端主动向前端来发送数据,而不是等请求的这么一种假象。具体实现路子的话看到了某位大佬发送的文章,里面是具体的前后端部署websocket并建立链接的方式以及代码,特此分享给大家。(如涉及到侵权问题,可以直接联系我)
总结
链接机制啊,TCP、UDP等都是基础中更要学习的东西,包括其他的一些基础性的东西,都能作为后面我们开展工作当中的一个工具,不仅要了解,还需要学以致用!
代码地址
原文转自:https://blog.csdn.net/weixin_56079712/article/details/121602008