1. 连接失败,报错:Failed to connect GoEasy, code:408,error:It is already connected, don't try again until disconnect() is called.
报错原因:
当前客户端已经建立过GoEasy连接了,但是用户还在调用connect尝试建立新的连接
解决方案:
在调用connect前判断一下当前的连接状态,避免一个客户端尝试多次建立goeasy连接。如下代码:
javascript
if (GoEasy.getConnectionStatus() === 'disconnected') {
this.connectGoEasy(); //连接goeasy
this.subscribeGroup(); //建立连接后,就应该订阅群聊消息,避免漏掉
}
2. 连接失败,报错:Failed to connect GoEasy, code:400,error:appkey is invalid
appkey不正确,请核实您的appkey,具体appkey的使用请参考文档: https://docs.goeasy.io/2.x/im/account/developer-account
如果appkey无误,请确认host是否正确,新加坡节点跟杭州服务节点的host不同,杭州服务节点的host为:hangzhou.goeasy.io 新加坡服务节点的host为:singapore.goeasy.io
3. 连接失败: code:401,error:Unauthorized
请排查以下三点:
- 验证otp的生成结果是否正确:https://docs.goeasy.io/2.x/im/shared-otp/verify
- 检查客户端跟服务端是否有时差,otp生成后有效期只有1分钟,如果时间误差超过1分钟则也会导致otp验证失败
- Client key跟生成otp需要的secret key需要是同一个GoEasy应用
4. 连接失败,报错:code: 400, error: data: id and data are required for IM module**
您加入了IM模块,在connect接口中 id 和 data 两个参数是必填项。报错是因为您没有传入正确的参数,id需要是字符串类型,data需要是一个json对象。
5. 连接失败:Failed to connect GoEasy, code:999,error:Your GoEasy application is expired, please contact your administrator to renew it
您的应用到期了,所以连接失败,续费之后可以恢复服务。
6. 我续费了,但是还是无法连接成功
到期之后再续费有5分钟生效时间,请5分钟之后再尝试。
如果续费前已经打开了客户端,需要重新刷新客户端才能成功建立连接 (浏览器:刷新页面;app:进程杀掉重新进入; 小程序:重新加载小程序)
7. 刷新页面后,连接断开了没有建立连接
刷新页面后属于全新的客户端需要重新调用connect接口
8. 连接一直处于connecting 0, 无法连接成功。
排查点:
- 如果是运行到小程序,排查客户是否有配置socket合法域名, 如果没有配置,根据建立GoEasy连接文档中的配置添加socket合法域名。
- 如果日志之后有报"please configure GoEasy RTc native plugin first: https://www.goeasy.io"错误消息,则跟客户确认是否需要RTC功能,如果不需要可以先注释掉demo中所有跟RTC相关的代码,再运行。 如果需要RTC功能,则需要根据文档完善RTC的配置后才能成功建立连接。
- 如果客户运行到iOS 设备上,让客户尝试注释初始化GoEasy的allowNotification中的代码然后再测试看看。如果注释掉后工作,则需要进而排查以下几点:
1). manifest.json中push模块是否是勾选状态,如果不是,需要勾上
2). manifest.json中unipush是否有勾选,如果是,请取消勾选(goeasy原生插件跟unipush冲突,不能同时使用)
3). 检查manifest.json的源码视图中distribute节点中配置中是否包含pushRegisterMode参数配置?pushRegisterMode是unipush的配置,个别hbuilder版本下,模块配置中没有勾选unipush但是源码视图中有。如果有,需要删除这个参数。
4). 检查iOS 开发证书是否勾选了push notification权限,如果没有勾选,需要勾上
9. 连接报错: goeasy is not defined
goeasy报undefined一般都是您这边没有成功引入sdk或者没有全局挂载goeasy导致其它页面无法获取到goeasy对象导致的, 请参考demo排查您的sdk引入方式和全局挂载方式是否正确。
10. 连接报错: Failed to connect GoEasy, code:401,error:Sorry, your application is a Basic Edition and does not support IM APIs, please upgrade to the Enhanced Edition if you need to invoke IM APIs
您当前创建的websocket消息推送类型的应用,它不支持IM即时通讯。您可以重新创建一个免费的IM即时通讯型应用来使用。
11. 一直连接不上,控制台连续报:WebSocket connection to agent-desk-sdk.es. js:14545 wss://2hangzhou.goeasy.io/socket.io/?EI0-3&transport=websocket&b64=1'failed: WebSocket is closed before the connection is established.
这个错误是GoEasy websocket连接被其它的websocket给意外关闭了,导致连接不上。您项目中是否有使用除了GoEasy之外的其它websocket呢?
如果有,您用SocketTask的方式创建其它的websocket, 就可以解决这个冲突问题了, 参考文档:https://uniapp.dcloud.io/api/request/socket-task
12. Nodejs中始终无法建立GoEasy连接,一直connecting
node中建立websocket连接需要依赖ws模块,请检查dependencies中是否有ws库,如果没有,则无法建立网络连接,导致无法连接goeasy。
请排查是否使用的是lite版本的sdk, 标准版sdk不支持nodejs
13. 初始化的appkey如何动态获取?
建议将appkey放置在配置文件中或者数据库中保存,uniapp下在app.vue中的onLaunch事件中获取appkey然后再初始化,这样未来应用上线后,如果想要切换appkey,也不需要改代码重新发布新版本。
- 小程序中报错: wss://1hangzhou.goeasy.io 不在以下 socket 合法域名列表中...

小程序中在开发者工具中运行没问题是因为开发者工具中"详情"->"本地设置"->"不校验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书"是勾上的。而运行到真机往往都是会验证socket合法域名的, 需要您需要登录微信公众平台->微信小程序开发设置->服务器域名, 添加以下所有5个socket合法域名:
wss://1hangzhou.goeasy.io
wss://2hangzhou.goeasy.io
wss://3hangzhou.goeasy.io
wss://4hangzhou.goeasy.io
wss://5hangzhou.goeasy.io
如果有其它疑问,欢迎咨询官网客服。