java - telegram java 客户端上的 TimeoutException

标签 java timeout telegram

我使用java telegram api与windows intellij idea中的telegram core api进行通信

https://github.com/ex3ndr/telegram-api


但应用程序在
TLConfig config = api.doRpcCall(new TLRequestHelpGetConfig());

完整源代码:

AppInfo appinfo=new AppInfo(45687, "Myapp", "154", "587","en");
    TLRequestAuthCheckPhone checkRequest = new TLRequestAuthCheckPhone("96521452365");


    MyApiStorage state=new MyApiStorage();
    TelegramApi api = new TelegramApi(state, appinfo, new ApiCallback()
    {
        public void onApiDies(TelegramApi api) {
            // When auth key or user authorization dies
        }
        @Override
        public void onUpdatesInvalidated(TelegramApi api) {
            System.out.print("############################### onUpdatesInvalidated");
            // When api engine expects that update sequence might be broken
        }

        @Override
        public void onAuthCancelled(TelegramApi ta) {
            System.out.print("############################### onAuthCancelled");
            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public void onUpdate(TLAbsUpdates updates) {
            System.out.print("############################### onUpdate");
            System.out.println("user Id ::::"+((TLUpdateShortMessage) updates).getFromId());

        }
    });
    api.switchToDc(1);
    TLConfig config = api.doRpcCall(new TLRequestHelpGetConfig());
    System.out.print("############################### config" + config.getTestMode());
    state.updateSettings(config);
    api.doRpcCall(checkRequest, new RpcCallbackEx<TLCheckedPhone>() {
        public void onConfirmed() {
            System.out.print("############################### onConfirmed");
        }

        public void onResult(TLCheckedPhone result) {
            boolean invited = result.getPhoneInvited();
            boolean registered = result.getPhoneRegistered();
            System.out.print("############################### onResult" + registered);
            // TODO process response further
        }

        public void onError(int errorCode, String message) {
            System.out.print("############################### onError" + message);
        }
    });



有人可以帮助我

最佳答案

您的超时可能因多种原因而发生:
1.您正在使用

    api.doRpcCall(new TLRequestHelpGetConfig());

在 TelegramApi 类中,这会转换为

    return this.doRpcCall(method, timeout, 0);

0代表DC。如果您的 DC 不同,您将超时
2. 在其他地方有人建议使用 doRpcCallSide 来代替,它对某些地方有效,但对其他人无效。原因是它转化为

    return this.doRpcCall(method, 15000, this.primaryDc, true);

其中 true 代表 authRequired。
3. 如果您想在未经授权的情况下执行此操作,请使用

api.doRpcCallNonAuth

关于java - telegram java 客户端上的 TimeoutException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32403239/

相关文章:

java - ubuntu/unity 的焦点问题

python - 通过pip安装tensorflow但是失败如下

java - Maven 版本的 pom.xml 文件中出现错误,显示以下错误 ""

java - play框架全局设置响应头

java - 套接字和服务器套接字

macos - 溢出预期/超时Mac OS X

Azure 计划任务在 30 秒后超时

python - 无法从 Json 中取出单个值

android - 如何在主题更改时制作循环显示效果? (就像在 Telegram 或 VK 中一样)