默认
发表评论 5
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 求助RainbowChat-Web中在线、离线状态功能的开发疑问
老师好:
经过您之前的指导,我看到www.js中有callBack_userOnline()和callBack_userOffline()方法,我在cmd上也能看到在线,离线的日志,也能看到在线列表,但是怎么在日志更新的时候,静态页面能获取到这些状态变化?
我查看了代码逻辑,在mobileimsdk-client-sdk.js文件里,有一个loginImpl(),我想的是让www.js里的两个方法分别去调用loginImpl()这个方法,这样页面上面就会走上线和离线的代码,但是不知道如何做,能触发这个方法。
================www.js中callBack_userOnline()方法里面,写一个alert都报错;
=================
现在主要就是状态在日志上能看到,如何返显到页面UI上;按照老师的说法,A登陆后,B在去登录,A应该会有一个B登陆的提示。但是这个没有触发;
===
或者说我的思路是错误的;
请老师,再指导指导,谢谢老师;


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

推荐方案
评论 5
在callBack_userOnline()和callBack_userOffline()这两个回调里:

1)当A登陆时(就是在callBack_userOnline()回调里),就从数据库(为了性能,你也可以搞个内存缓存,预先把所有人的好友列表加到缓存里)里加载它的好友列表,逐个向每个好友发送它的上线指令(可以参考app服务端那边的指令和格式,是一样的)。

2)当A离线时(就是在callBack_userOffline()回调里),同样从数据库(为了性能,你也可以搞个内存缓存,预先把所有人的好友列表加到缓存里)里加载它的好友列表,逐个向每个好友发送它的下线指令(可以参考app服务端那边的指令和格式,是一样的)。

引用:JackJiang 发表于 2025-06-18 17:11
在callBack_userOnline()和callBack_userOffline()这两个回调里:

1)当A登陆时(就是在callBack_userOn ...

老师,不好意思,在这回调里,怎么从数据库加载好友列表,现在的好友列表,是从后端读取出来的。
我理解您的意思,但是我想在这个回调里加在一些方法,不生效;
我原本是想在这个回调里,比如类似ajax的求情,通知一下后端,后端在通知前端,来做在线状态;
先加了一个console,也不生效;
========================
我最开始想的是,既然这个回调里能加在线日志出来,那就说明是有监听的,有没有什么办法在回调里通知UI去做逻辑处理。
============
有什么案例参考下么,谢谢老师;
签名: 我现在想实现在线状态离线状态的更新,看到www.js中有callBack_userOnline方法,和callBack_userOffline方 ...
引用:无心 发表于 2025-06-18 17:57
老师,不好意思,在这回调里,怎么从数据库加载好友列表,现在的好友列表,是从后端读取出来的。
我理解 ...

你这确实手比较生,那就先别考虑性能啥的,直接一把梭:

你在回调里,直接查询数据里的在用户好友列表,SQL怎么写的话可以去app服务端那边看一下它的上下线回调里的用法,一模一样即可。web后端如果不知道怎么用js查询数据库,可以百度一下,也可以看一下 cache-provider-mysql.js里的exports.queryGroupMember()这个方法,它里有个很简单的查询代码,照着去写就好好,不能再简单了
引用:JackJiang 发表于 2025-06-18 18:37
你这确实手比较生,那就先别考虑性能啥的,直接一把梭:

你在回调里,直接查询数据里的在用户好友列表 ...

谢谢老师,实现了。再次感谢。
签名: 我现在想实现在线状态离线状态的更新,看到www.js中有callBack_userOnline方法,和callBack_userOffline方 ...
引用:无心 发表于 2025-06-23 17:23
谢谢老师,实现了。再次感谢。

ok
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部