GoEasy Websocket消息推送集成报错原因与解决方案

在集成GoEasy websocket消息推送的过程中常见的错误与解决方案。

GoEasy连接失败

  1. code:401,error:Please upgrade the GoEasy SDK version to 2.6 +, the newly created GoEasy application cannot support your current SDK version, or contact the GoEasy team
    错误原因:sdk版本太低。GoEasy在2.6版本中做了大的升级,所有新的应用都需要集成高于2.6+
    解决方案: 从官网下载最新的sdk SDK下载链接,然后根据官网文档对相应的weboscket消息推送的接口进行升级更新操作。

  2. code:400,error:appkey is invalid
    错误原因: 调用connect接口时传入的appkey不正确, 或者host不正确
    解决方案: 登录GoEasy控制台,查看应用详情 ,获取相应的common key、Subscribe Key 或者 Client Key+OTP ,在调用connect接口时传入正确的key即可。 具体每种appkey的用法,请参考文档 https://docs.goeasy.io/2.x/common/account/developer-account
    如果appkey经过排查后无误,那么需要排查connect接口的host是否跟GoEasy所在的服务节点一致。 在创建GoEasy应用时,需要选择服务节,如果选择的是杭州节点,host应该是 hangzhou.goeasy.io; 如果是新加坡节点,那么host应该是 singapore.goeasy.io

  3. code:900,error:Over max user capacity
    错误原因: 超过目前套餐最大支持的日活
    解决方案: 使用已经成功建立过连接的设备继续使用GoEasy。如果需要支持更多的日活(设备),可以登录GoEasy后台进入应用详情页面,补差价将套餐升级到更高一档套餐即可。完成升级后,5分钟内生效。套餐资费可以在这里查看基础型套餐, https://www.goeasy.io/cn/pricing.html#pubsub

  4. code:408,error:It is already connected, don’t try again until disconnect() is called.
    错误原因: 尝试在一个客户端中建立多个GoEasy连接。目前一个客户端有且只能创建一个GoEasy连接。GoEasy有断网自动重连机制,所以不需要开发者单独处理断网或者弱网情况下的连接。
    解决方案: 可以在调用connect接口前加上一个条件判断,当当前连接状态为disconnected时才调用connect接口。

 if (GoEasy.getConnectionStatus() === 'disconnected') {
     //建立连接
     GoEasy.connect({
        onSuccess: function () {  //连接成功
          console.log("GoEasy connect successfully.") //连接成功
        },
        onFailed: function (error) { //连接失败
          console.log("Failed to connect GoEasy, code:"+error.code+ ",error:"+error.content);
        },
        onProgress:function(attempts) { //连接或自动重连中
          console.log("GoEasy is connecting", attempts);
        }
    });
 }
  1. [wxapplib]] Uncaught (in promise) FrameworkError {“errMsg”:“closeSocket:fail:taskID not exist”}
    或者
    [Vue warn]: Errorin event handler for"api.onSocketTaskstatechange":“SyntaxError: JSON Parse error: Unable to parseJSON string”
    错误原因: 排查是否存在GoEasy websocket连接之外的其它websocket连接,如果有,那么是多个websocket冲突导致的。
    解决方案: 用SocketTask的方式创建其它的websocket连接,来避免跟goeasy的websocket连接造成冲突。 参考链接:https://uniapp.dcloud.io/api/request/socket-task

  2. wss://5hangzhou.goeasy.io 不在以下 socket 合法域名列表中
    错误原因: 没有配置正确的socket合法域名。
    解决方案: 小程序下,必须要配置socket 合法域名。登录微信公众平台->微信小程序开发设置->服务器域名, 添加对应的socket合法域名。
    不同sdk版本,socket合法域名有所不同,请根据您的sdk版本配置对应的socket合法域名。

SDK 版本socket合法域名
SDK <= 2.8.8wss://wx-hangzhou.goeasy.io
2.9.1 <= SDK <=2.10.13wss://1mp-hangzhou.goeasy.io
wss://2mp-hangzhou.goeasy.io
SDK >= 2.10.14wss://1hangzhou.goeasy.io
wss://2hangzhou.goeasy.io
wss://3hangzhou.goeasy.io
wss://4hangzhou.goeasy.io
wss://5hangzhou.goeasy.io
  1. code:401,error:Unauthorized
    错误原因: connect接口的otp不正确。
    解决方案: 首先排查connect接口中的client key是否正确,如果没有问题,需要排查传入的otp是否正确。 需要注意:otp 只能被使用一次,而且生成后第一次使用需要在5分钟之内完成。 OTP的生成与使用,参考文档:https://docs.goeasy.io/2.x/common/otp/howto

  2. 一直报GoEasy is connecting,连接不上

可能的错误原因解决方案
如果是小程序,可能是socket合法域名不正确根据SDK版本配置对应的socket合法域名,参考上文中的socket合法域名配置详情
网络不稳定切换为移动数据测试,或者晚点再试
如果是iOS的自定义基座,push模块没有勾选或者跟unipush模块共用冲突导致连接不上在manifest.json中勾选push模块,取消勾选unipush相关模块,再重新打自定义基座测试
其它访问www.goeasy.io官网咨询在线客服
  1. code:999,error:Your GoEasy application is expired, please contact your administrator to renew it
    错误原因: 当前所用的套餐已经到期。
    解决方案: 登录GoEasy后台,为当前应用完成续费即可。

消息接收不到

针对websocket消息推送收不到的问题,原因有以下可能:

  1. GoEasy连接未成功建立
  2. 客户端执行subscribe接口失败
  3. subscribe接口中的channel跟publish接口中的channel不一致
  4. 消息没有成功发送,也就是执行publish接口失败

消息发送失败

针对websocket消息推送,前端调用publish接口发送失败,原因有以下可能:

  1. GoEasy连接未成功建立
  2. 参数传入错误
  3. 套餐内没有可用消息
  • 15
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值