请选择 进入手机版 | 继续访问电脑版

默认
发表评论 2
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 求助移动端WebView中套RainbowChat-Web页面连接断开的问题
应用有4个tab页,每个页面都是一个webview来显示不同web端即时通讯功能,如果打开了一个页面,再打开另外一个,当前的web端即时通讯就会断开连接
Screenshot_20210128-160724.png Screenshot_20210128-160735.png Screenshot_20210128-161343.png

如何让它们无缝运行?
来自------付费授权用户

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

推荐方案
评论 2
我在onlineCheck的方法加了window.RBChatMainUI.doLoginIMServer()就可以了,目前好像没什么问题。
你终于get到移动端webview套im的技术痛点了。。。

在WebView里跑Web im这种方式,你在市面上几乎没有见过,原因有以下两个方面:

首先,是体验问题:

im这种对体验重度敏感的应用,用户对于界面性能很敏感,因为你的im只要稍稍卡一点点,用户就会立马感觉出来,因为每个人对微信、qq的体验都了如指掌,用你的im马上就能形成:“为什么微信不卡,你的im明显要卡很多”这样的错觉。必竟,无论哪种框架,跟原生性能相比,都没有吹的那么牛。


其次,将遇到IM长连接的技术限制问题:

受限于web技术本身,app里套壳webview的话,它里面的网页中websocket长连接能力其实是受限的。

原因是:以你平时用的浏览器为例,包括websocket对象在内的所有对象,生命周期只在一个window内(即一个页面/窗口内),这个页面/窗口关闭或跳转,此页面内的所有对象都将销毁,也就意味着,没有办法像富客户端原生应用一样,全局持有一个长连接。

浏览器里的websocket,只能是打开这个页面/窗口,建立长连接,关闭或跳转出这个页面,长连接就断了。这就是我说的web端长连接技术问题。

不知道我说的,你是不是理解。
签名: 《深入操作系统,一文读懂进程、线程、协程》http://www.52im.net/thread-3357-1-1.html
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部