默认
发表评论 8
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求教在线客服系统IM客户端发消息使用https还是wss好呢
一个基于web的im系统,使用场景是在线客服,一个客户会话(有匿名用户也有已登录用户)对应一个坐席,一个坐席可以服务多个客户,坐席端和客户端都是H5,服务器端Java,前后端分离架构,容器化部署,多实例运行,RabbitMQ做消息中转,客户端被嵌入到其他web网站/微信公众号/小程序/Native App。目前客户端使用wss发送消息给服务器,遇到的问题有:1. 客户端初始化wss连接时间较长,大概2-3秒左右,影响客户端首屏显示的时间,用户体验系统打开有点慢
2. 客户端发送消息给服务器,服务器已收到,但是某些时候(不好复现)客户端没有收到服务器的ack回执会认为消息发送失败

团队有小伙伴建议客户端发送消息改成https,服务器推送消息给客户端仍然用wss以保证即时性,上面两个问题都可以解决,请问这样修改架构改动比较大,会有什么潜在问题么

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:大神门求助!im系统中的群聊离线发布如何设计好离线表结构?下一篇:求助关于im中消息删除逻辑实现的疑问
推荐方案
评论 8
1、你websocket连接建议时间需要2、3秒,这确实有点长,原因是什么你们有没有调查过。哪怕是启用了tls/ssl加密的话,也不至于。

2、这种看起来就是通信底层的消息送达机制不够健壮导致的,建议系统地梳理一下底层通信框架的算法逻辑,看看是否存在什么逻辑漏洞。

3、“团队有小伙伴建议客户端发送消息改成https,服务器推送消息给客户端仍然用wss以保证即时性,上面两个问题都可以解决,请问这样修改架构改动比较大,会有什么潜在问题么”:不理解为什么客户端发送消息改成https就能解决问题。。。。上面的问题,明明是底层通信框架写的就有问题,应该去解决掉框架的问题,而不是临时用别的办法来凑
3 楼: patricky Lv.2 楼主 11 个月前 | 显示全部楼层
引用:JackJiang 发表于 2023-12-04 15:46
1、你websocket连接建议时间需要2、3秒,这确实有点长,原因是什么你们有没有调查过。哪怕是启用了tls/ssl ...

好的,我们查下wss链接时间为什么那么长
确实是通信底层的消息送达机制不够健全,换句话说对websocket的掌控不够成熟
因为https不用等ack信号直接根据返回结果就可以判断客户端发送消息是否成功
引用:patricky 发表于 2023-12-04 16:24
好的,我们查下wss链接时间为什么那么长
确实是通信底层的消息送达机制不够健全,换句话说对websocket的 ...

从头写一套通信底层,有解决的问题很多,但千万不要凑代码,不然越往后越难搞
5 楼: patricky Lv.2 楼主 11 个月前 | 显示全部楼层
引用:JackJiang 发表于 2023-12-04 16:30
从头写一套通信底层,有解决的问题很多,但千万不要凑代码,不然越往后越难搞

有推荐的通信底层框架可以用么,这波开发小伙伴应该是搞不定重写
引用:patricky 发表于 2023-12-04 16:32
有推荐的通信底层框架可以用么,这波开发小伙伴应该是搞不定重写

你们可以研究一下MobileIMSDK 代码和资料研究一下,权当学习:https://github.com/JackJiang2011/MobileIMSDK

github打开慢的话,就点开这个:http://www.52im.net/thread-52-1-1.html
7 楼: patricky Lv.2 楼主 11 个月前 | 显示全部楼层
引用:JackJiang 发表于 2023-12-04 16:44
你们可以研究一下MobileIMSDK  代码和资料研究一下,权当学习:https://github.com/JackJiang2011/Mobile ...

感谢站长,我们学习下先
8 楼: patricky Lv.2 楼主 11 个月前 | 显示全部楼层
对了忘了说小伙伴建议发送消息换成https的另外一个好处是不用处理断线重连和会话重连
引用:patricky 发表于 2023-12-04 17:11
对了忘了说小伙伴建议发送消息换成https的另外一个好处是不用处理断线重连和会话重连

那是他们懒,因为这不是im长连接的最佳实践
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部