0.0.1. Q. 我部署完成服务后,客户端能登录,但一只显示连接中或者无法连接。

A. 请按照如下步骤检查:

  1. 如果IM服务使用了域名,要对域名做解析。如果是专业版节点也是域名,也需要做解析。
  2. 确保只有一个IM服务实例在运行。社区版是单机单实例版本,如果启动多个实例会有异常,请确保只有一个实例启动。查询实例个数方法请百度,或者直接重启机器。 如果是专业版,每台服务器上也只能运行一个IM服务实例,且集群内每个IM服务实例的节点号不能重复。
  3. 检查端口是否绑定失败。查看logs/wildfirechat.log 看里面是不是有异常抛出,看一下异常原因。异常原因里有bind失败就是端口被占用。需要找到使用该端口的应用并停止掉,然后重启IM服务。或者换一台服务器。
  4. 检查服务器配置中的server.ip是否配置正确。server.ip应该是服务器的对外提供服务的IP地址。如果是专业版IM-Server,需要使用正确的节点域名。
  5. 检查安全组和防火墙是否将1883,80开放。如果有Web/小程序客户端,检查8083/8084端口是否开放。如果是专业版,需要确保每个节点都要开放这几个端口。可以使用telnet IP地址 端口命令来检查是否端口开放。如果您修改过端口,请注意检查对应的端口。
  6. 检查端口是否对外开放。在服务器上使用curl http://localhost/api/version或使用浏览器打开http://localhost/api/version看看是否返回一个json。然后再在另外一台电脑上用浏览器打开http://{server.ip}/api/version。 看看是否返回同样的json。
  7. 检查客户端配置是否正确。IM HOST要正确使用IM服务地址,可以是IP,建议用域名,注意不能带http头和端口。如果是专业版,客户端IM服务host只能配置为授权域名或 IP,不能使用节点IP地址或节点域名。
  8. 检查客户端连接状态值,如果总是kConnectionStatusSecretKeyMismatch,说明请求token使用的clientId不是从协议栈获取的,或者部署多个环境,请求token的环境和客户端实际使用的环境不一致。
  9. 检查logs/wildfirechat.log日志,看看是否有数据库的异常日志,如果有数据库的异常日志IM服务也将不可用。
  10. 如果客户端的连接状态是kConnectionStatusRejected,需要查看用户的状态,是不是被禁止登录。
  11. 如果一直是好用的,突然某个客户端一直连接中,可能是被禁用,也可能是多端登录而客户端又没有处理好对应的错误码,请检查错误码,查看是不是通用问题的问题8.
  12. 如果是专业版,确认是否放好license文件,是否过期等。
  13. 如果是社区版,请不要使用Nginx。专业版可以按照文档中的说明来配置NG。
  14. 专业版会附带一个专门的部署说明,文件名是README.md,一般是随着专业版发布的,专业版的部署一定要仔细看这个文档。
  15. 如果是社区版且修改过80端口。请在配置文件中把http_portlocal_port都修改为定制的端口。专业版请按照部署文档部署就行。
  16. 如果IM服务能够连上,能够正常使用,但经常出现重连。检查一下客户端与IM服务之间有没有网关网闸负载均衡之类的中间件,如果有需要开启链路保持10分钟或更多。

如果上述步骤全部排查完毕还不能解决问题,请把如下信息:

  1. 客户端协议栈日志和IM服务日志(IM服务默认为异步写,需要按照这里问题45修改为同步写)。
  2. IM服务配置文件(可以把配置文件中敏感信息替换成星号)
  3. 部署信息,比如有没有用NG,服务器部署是单机还是集群,服务器的域名和IP都是多少等信息。
  4. 客户端配置信息,客户端配置的IM Host是什么。
  5. 上面排查步骤每个步骤的排查情况。

发送邮件到 support@wildfirechat.cn,我们会抽空分析,如果是付费客户,请注明公司信息。因为公司人力有限、任务繁重,请在邮件中一次性提供所有要求的信息,避免无效沟通浪费时间。

2018 © wildfirechat.net 京ICP备18060403号-1 all right reserved,powered by Gitbook该文件修订时间: 2024-11-18 12:31:06

results matching ""

    No results matching ""