Channel API接口调用异常

hui 18天前 22422

curl -X POST http://localhost:18080/channel/subscriber_list -H "Content-Type: application/json" -H "cid: 728ea43aa592404b9b5ab7c5bb1ef604" -H "timestamp: 1745226877087" -H "nonce: 97612" -H "sign: aeb8b863677ac5a8ca49ad21a6db1cc6ce 6f6165" -d '{}' -v

最新回复 (17)
  • HeavyRain 18天前
    引用 2
    看错误应该是IM服务报错了,看看IM服务的异常日志
  • HeavyRain 18天前
    引用 3
    如果你们会java的话,可以看看我们有个java的server sdk,用sdk做请求就不会有问题的
  • hui 18天前
    引用 4
    IM服务 没有异常,  我开始用应用服务器 app-server  调用开发的, 一样报500错误,  所以才改用本地请求。
  • hui 18天前
    引用 5
     @Override
        public RestResult getChannelSubscriberList(String channelId) {
            // 返回信息
            ChannelSubscriberListResponse response = new ChannelSubscriberListResponse();
            try {
                // 获取到频道信息
                IMResult<OutputGetChannelInfo> infoIMResult = ChannelAdmin.getChannelInfo(channelId);
                ChannelServiceApi api = new ChannelServiceApi(adminUrl, channelId, infoIMResult.getResult().getSecret());
    
                // 调用api接口 获取 订阅列表
                IMResult<OutputStringList> listIMResult = api.getSubscriberList();
    
                response.setSubscriberList(listIMResult.getResult().getList());
            } catch (Exception e) {
                LOG.error("getChannelSubscriberList exception", e);
                return RestResult.error(ERROR_SERVER_ERROR);
            }
            return RestResult.ok(response);
        }
  • hui 18天前
    引用 6
    调用ChannelAdmin 是没问题的 但是调用ChannelServiceApi就异常了 。很奇怪,所以提工单, 你们专业版的校验是不是不一样,麻烦大佬核查下
  • hui 18天前
    引用 7

    app-server 错误日志

  • HeavyRain 17天前
    引用 8
    hui ```java @Override public RestResult getChannelSubscriberList(String channelId) { // ...
    500那就是服务出错了,有可能不是这块儿代码出的错,你看一下控制台日志和logs目录下的wildfirechat_error.log日志,应该能看到错误日志输出
  • HeavyRain 17天前
    引用 9
    hui ```java @Override public RestResult getChannelSubscriberList(String channelId) { // ...
    还有出现的概率是什么,是每次都有错误,还是一定频道调用才出错误?
  • HeavyRain 17天前
    引用 10
    hui ```java @Override public RestResult getChannelSubscriberList(String channelId) { // ...
    另外IM服务有没有修改过,如果修改过,请用我们发布的最新版本不做修改(只改配置)测试看看有没有这个问题
  • hui 17天前
    引用 11
    1. 控制台日志和logs目录下的wildfirechat_error.log日志 均无输出日志 ,我调用后app-server接口后 无任何反应
    2. 出现的概率是什么: 每次都出现 只要调用sdk下的ChannelServiceApi类的接口均500报错

    3.今天重新梳理了下逻辑,我调用的是subscriber_list 接口 是查询 频道订阅人数的 .但是在你们开源版源码中 是没有限制的 。 所以我的账号并不是创建频道的管理者,

    @Route(APIPath.Channel_Subscriber_List)
    @HttpMethod("POST")
    public class GetChannelSubscribersAction extends ChannelAction {
    
        @Override
        public boolean action(Request request, Response response) {
            if (request.getNettyRequest() instanceof FullHttpRequest) {
                OutputStringList outputStringList = new OutputStringList();
                outputStringList.setList(new ArrayList<>());
                outputStringList.getList().addAll(messagesStore.getChannelSubscriber(channelInfo.getTargetId()));
                setResponseContent(RestResult.ok(outputStringList), response);
            }
            return true;
        }
    }
    

    4。 但是今天我改用了创建频道的管理员进行调用接口 ,出现了不一样的 结果 如下 麻烦看下,根据文档和开源源码 并没有这个参数 ? name??

  • hui 17天前
    引用 12
    HeavyRain 另外IM服务有没有修改过,如果修改过,请用我们发布的最新版本不做修改(只改配置)测试看看有没有这个问题
    麻烦看下
  • hui 17天前
    引用 13
    第四条可以不用看了,那个name是测试数据异常了, 回归错误码 500 即可
  • HeavyRain 17天前
    引用 14
    这样吧,你用最新的社区版,复现出问题。然后告诉我如何来复现这个问题,我需要按照你的步骤来复现这个问题
  • hui 17天前
    引用 15
    HeavyRain 另外IM服务有没有修改过,如果修改过,请用我们发布的最新版本不做修改(只改配置)测试看看有没有这个问题
    本地im使用的是专业版 没有修改,只改过配置文件
  • HeavyRain 17天前
    引用 16
    专业版也行,你把从头开始复现的步骤写一下,我这边用你提供的步骤来复现,复现后就好解决了
  • x86 17天前
    引用 17
    ChannelServiceApi 的端口是 80,不是 18080
  • hui 17天前
    引用 18
    已解决,问题原因为 端口问题,使用了18080 ,正确应该使用im服务的config/wildfirechat.conf文件中的local_port参数端口

    但是还是想吐槽下,你java内部都给了sdk了 就不能做个直连18080端口的请求,就像ChannelAdmin 一样调用?非得脱裤子放屁 ,看了半天我才反应过来这个类是给第三方用的。 
返回