PC 常见问题
1. Q. 如何抓取日志
A. 协议栈会自己抓取最近5M的日志,将会对问题的解决提供非常大的帮助。协议栈日志在不同系统上存在不同的目录。在MAC上的目录是~/Library/Application Support/{包名, 也就是package.json 里面的 appId}/wildfirechat/{用户Id}/wfchat_{日期}.xlog
;在Linux上的目录是~/.wildfirechat/data/{用户Id}/wfchat_{日期}.xlog
;在windows上的目录在C:\Users\{登电脑登录用户名}\AppData\Roaming\wildfirechat\{用户Id}\wfchat_{日期}.xlog
。log是mars的xlog
格式,没有密码。用户可以自己解压后分析,也可以发给我们分析问题。
2. Q. 手机端扫码提示会话不存在或者已过期?
A. 只有手机端和PC端所对应的APP、IM Server都相同时,才能扫码登录PC端。
1. PC端需要购买```PC SDK```才能连接自己部署的服务,默认只能连接官方服务。确认是否想官方购买了```PC SDK```,如果未购买,可[申请试用](../quick_start/trial.md)
2. 确认PC端```config.js```和手机端```Config.java```或```WFCConfig.m```所配置的```APP_SERVER```是否一致。
3. Q. 扫码无法登录,如果让PC端连接自己部署的服务?
A. 请参考上一问题。
4. Q. 二维码不显示
A. 控制台 -> 网络,看下pc_session请求是否正常访问你们部署的app server
5. Q. 手机扫码,提示未登录或者错误
A. AppServer从0.40版本起引入了shiro,所有移动端的请求都需要进行认证,您需要把移动端升级到最新版本另外退出重新登录一下,具体原因请参考这里。如果还是无法解决问题,请自行DEBUG一下,相关部分所有代码都是开源的。
6. Q. 如何将登录方式修改为账号密码登录?
A. IM本身只需要userId
和token
即可进行连接,故可以参考移动端的登录逻辑,去获取userId
和token
,其中需要注意的是:token
和clientId
、platform
是绑定的,登录获取token
时,这两个字段不能随便填写,需要分别通过wfc.getClientId()
和Config.getWFCPlatform()
获取。
7. Q. 登录了,但是连不上
A. 首先,这并不是一个比较有效的问题,但总有小伙伴这么问。请根据如下步骤进行排查:
- PC SDK 是绑定域名或者IP的,也就是说PC SDK和IM Server是绑定的,换域名或IP时,需要同时更换
- 确保IM SERVER部署成功,并且配置文件里面配置的
server.ip
就是PC SDK所绑定的域名或者IP - 确保已修改
config.cpp
里面的APP_SERVER
地址,并且该APP SERVER配置里面所指向的IM SERVER是PC SDK所绑定的那个 - 确保已用邮件里面的动态库文件替换了
proto
目录下对应的动态库文件,所有平台的都需要替换,最好一次就把所有的都替换了 - 如果还是有问题,请参考最上面,给我们提供日志
8. Q. 在Windows系统缓存目录,存在wildfirechat目录,如何去掉?
A. 有2处需要修改,在package.json
中把name
属性改为您的应用英文名;还有一处在connect和获取clientid之前或者初始化时,调用SDK的setAppName
方法,名字改为您的应用英文名。另外如果是Max系统,还需要修改应用的包名。
9. Q. 不支持音视频通话
A. 目前暂无支持计划。
10. Q. win7的虚拟机几台设备共用同一个帐号,会导致clientId是重复的,导致被踢下线
A. 问题的原因是野火PC客户端默认每个账户生成一个UUID作为clientId,如果用同一个账户登录,那么就有相同的clientId,在IM服务端,根据clientId来判别客户端,从而认为是换用户登录,导致之前登录的账户被踢下来。解决办法如下:
- 修改登录方法,把登录分成2部分,第一步登录不上传clientId和平台,登录成功后,不获取token,只返回客户端当前用户的用户ID。
- 调用SDK的
setAppDataPath
方法为此用户设置唯一的路径,建议系统账户用户目录下+用户ID拼接路径。 - 调用sdk获取clientId(一定要在第二步之后才调用,之前不要调用),调用登录的第二部分,参数包括clientId和平台,获取IMtoken,得到token之后调用connect。
- 如果是记录token自动登录,需要同时记录用户id和token,在调用connect之前要执行步骤2设置数据存储路径。
11. Q. 如何修改数据/日志目录名称?
A. PC 端默认的数据/日志文件路径包含wildfirechat
字样,如:/Users/wf/Library/Application Support/cn.wildfire.qt-pc-chat/wildfirechat/uiuJuJcc
。如果客户不希望看到wildfirechat
字样时,可通过修改appName
实现,具体请参考前面setAppName
方法,需要注意的是,setAppName
方法必需需要在getClientId
和 connect
之前调用。另外如果是Max系统,还需要修改应用的包名。