プラットフォームテクノロジー - メッセージングサービスの使い方の紹介


メッセージ サービスは、アプリケーション API 呼び出しの効率を向上させるためにオープン プラットフォームによって開始されるアクティブなプッシュ サービスです (FromTaobao)。プッシュ コンテンツには (Taobao の取引、商品、返金など) が含まれます。 .情報)、このプッシュ サービスに基づいて、アプリケーションはタオバオ データを取得するために API を継続的にポーリングする必要がなくなり、タオバオによってプッシュされたメッセージを受信したときにのみ API を呼び出す必要があるため、API 呼び出しの効率が大幅に向上し、API 呼び出しのコストが大幅に削減されます。 APIの使用コスト。同時に、メッセージ返信サービス (ToTaabao) も提供しており、アプリケーションは淘宝網に情報を返し、商品データ ソース サービスを提供できます。

FromTaobao: タオバオは、取引、製品、返金などに関するタオバオ (Tmall を含む) の公式ニュースをプッシュします。

淘宝網へ: つまり、メッセージは淘宝網に返されます。

それでは、メッセージング サービスを使用するにはどうすればよいでしょうか?メッセージング サービス From Taobao および To Taobao の使用方法については、次の詳細な手順を参照してください。

Taobao メッセージ サービスの使用方法

image

#アプリ サブスクリプション メッセージ

ISV コンソールを入力 , [アプリケーション管理 -> メッセージ サービス -> 購読メッセージ] ページで、購読する必要なメッセージを選択し、対応するメッセージの後ろにある [購読] をクリックします

image#購読メッセージが成功しました。正常に購読されたメッセージは、「私の購読」で確認できます。メッセージの購読をキャンセルする必要がある場合は、「購読をキャンセル」を直接クリックしてください。メッセージ名をクリックすると、各メッセージから返される詳細なフィールド情報が表示されます。

image注: メッセージに権限がない場合は、アプリケーションが関連する API 呼び出し権限を開いていないことを意味します。[権限を申請] をクリックして、対応する API 呼び出し権限を申請してください。許可パッケージ。さらに、サンドボックスでメッセージ サービスをアクティブにする必要がある場合は、この記事の [サンドボックス メッセージ サービスのアクティブ化] の章を参照してください。

#ユーザーへのメッセージをアクティブにする

Call

taabao .tmc.user.permit

インターフェイスはユーザー (つまり、淘宝網または Tmall 販売者) に対してアクティブ化されます。ユーザーに対して一部のメッセージ タイプのみをアクティブ化することも、すべてのメッセージ タイプをアクティブ化することもできます。彼ら。詳細については、API パラメータの説明を参照してください。 #########述べる:######

  • ユーザーへのメッセージをアクティブ化するための前提条件は、ユーザーがアプリケーションを承認していることです。承認されていない場合は、ユーザー承認の取得手順を参照してください。
  • ユーザーのメッセージ サービスをキャンセルするには、taabao.tmc.user.cancel インターフェイスを呼び出します。
  • ユーザーのアクティブ化されたメッセージは、taabao.tmc.user.get インターフェイスを通じて取得できます。入力パラメーターは、ユーザー認証メッセージが成功したかどうかを判断するために、入力 is_valid、トピック、変更されたものである必要があります。メッセージ サービス API ドキュメント:
  • ここをクリックして表示します
メッセージ受信を実装するコード

正式な環境サービス アドレス: ws:// mc.api.taabao.com/

サンドボックス環境サービスのアドレス: ws://mc.api.tbsandbox.com/

メッセージを受信するには 2 つの方法があります:
SDK 経由でメッセージを受信する
API メッセージを介した受信、メッセージの受信には SDK を使用することをお勧めします。

SDK を介したメッセージの受信

現在、JAVA および .NET 言語をサポートしています。他の言語については、API を使用してメッセージを受信することをお勧めします。 SDK経由でメッセージを受信する場合は、業務処理だけに集中すればよく、メッセージの再送や確認、長時間接続の再接続などを気にする必要はなく、すべてSDKが自動で処理してくれます。

JAVA インターフェイスの使用手順

public interface MessageHandler {
 
    /**
     * 消息通道客户端收到消息后,会回调该方法处理具体的业务,处理结果可以通过以下两种方式来表述:
     * <ul>
     * <li>抛出异常或设置status.fail()表明消息处理失败,需要消息通道服务端重发
     * <li>不抛出异常,也没有设置status信息,则表明消息处理成功,消息通道服务端不会再投递此消息
     *
     * @param message 消息内容
     * @param status 处理结果,如果调用status.fail(),消息通道将会择机重发消息;否则,消息通道认为消息处理成功
     * @throws Exception 消息处理失败,消息通道将会择机重发消息
     */
    public void onMessage(Message message, MessageStatus status) throws Exception;
 
}

JAVA 使用コードの例

TmcClient client = new TmcClient("app_key", "app_secret", "default"); // 关于default参考消息分组说明
client.setMessageHandler(new MessageHandler() {
    public void onMessage(Message message, MessageStatus status) {
        try {
            System.out.println(message.getContent());
            System.out.println(message.getTopic());
        } catch (Exception e) {
            e.printStackTrace();
            status.fail(); // 消息处理失败回滚,服务端需要重发
          // 重试注意:不是所有的异常都需要系统重试。
          // 对于字段不全、主键冲突问题,导致写DB异常,不可重试,否则消息会一直重发
          // 对于,由于网络问题,权限问题导致的失败,可重试。
          // 重试时间 5分钟不等,不要滥用,否则会引起雪崩
        }
    }
});
client.connect("ws://mc.api.taobao.com"); // 消息环境地址:ws://mc.api.tbsandbox.com/
注: Java メイン メソッドを使用して実行します。 Eclipse 上記のコードをテストするときは、client.connect() の後に Thread.sleep を追加して、メイン スレッドが一定時間待機してメッセージのリアルタイム受信を監視できるようにしてください。そうしないと、メイン スレッドの終了後に TMC が長時間実行されます。接続も切断されます。上記のコードを Web サーバー上で実行している場合、client.connect() の後に Thread.sleep コードを追加する必要はありません。また、外部で while (true) ループをラップする必要もありません。 Web サーバーはサーバーを終了するだけで終了せず、TMC の長い接続は常に維持されます。

C#サンプルコードを使用する

TmcClient client = new TmcClient("appkey", "appsecret", "default"); // 关于default参考消息分组说明
client.OnMessage += (s, e) =>
{
    try
    {
        Console.WriteLine(e.Message.Topic);
        Console.WriteLine(e.Message.Content);
        // 默认不抛出异常则认为消息处理成功
    }
    catch (Exception exp)
    {
        Console.WriteLine(exp.StackTrace);
        e.Fail(); // 消息处理失败回滚,服务端需要重发
        // 重试注意:不是所有的异常都需要系统重试。 
        //对于字段不全、主键冲突问题,导致写DB异常,不可重试,否则消息会一直重发
        // 对于,由于网络问题,权限问题导致的失败,可重试。
        // 重试时间 5分钟不等,不要滥用,否则会引起雪崩
    }
};
client.Connect("ws://mc.api.taobao.com/"); // 消息环境地址:ws://mc.api.tbsandbox.com/
注: C# Main メソッドを使用して VS コンソール プロジェクトで上記のコード テストを実行する場合は、client.Connect の後に Console.Read() または Thread.Sleep を追加して、メイン スレッドが一時的に終了しないようにしてください。リアルタイムの受信状況を観察できる場合、メインスレッド終了後に TMC の長い接続も切断されます。 IIS サーバーまたは C# アプリケーションで上記のコードを実行している場合、client.Connect の後に待機コードを追加する必要はなく、また、外部で while (true) ループをラップする必要もありません。 C# アプリケーションを閉じると、TMC の長い接続が維持されます。

API でメッセージを受信する

メッセージを受信するための API を提供する目的は、次のようなマルチスレッドや長時間の接続処理には不便な言語を使用することです。 PHP と Python。現在、これらの言語用に提供されている公式の SDK はありません。メッセージの受信と確認の目的を達成するには、次の 2 つの API を一緒に使用できます。可能な限り SDK メソッドを使用することをお勧めします。API を使用する必要がある場合は、同時実行なし、または同時実行が多すぎる状態で taovao.tmc.messages.consume インターフェイスを呼び出すことをお勧めします。 API 利用の時間パフォーマンスはそれほど高くありませんが、リアルタイム性の要件が高い場合は、SDK を使用することをお勧めします。

基本手順:

  • 最初にメッセージを消費します: API 名: taabao.tmc.messages.consumeメッセージが消費された後、ポインターは自動的に移動します未消費のメッセージは自動的に取得されますが、消費確認後のメッセージを再度取得することはできません。
  • 次に、メッセージを確認します: API 名: taabao.tmc.messages.confirmメッセージを取得した後、確認されない場合、メッセージ サービスは再送信の機会を選択し、再送回数はメッセージサービスによって管理されており、3日以内に確認が取れない場合はメッセージを削除させていただきます。

JAVA サンプル コード

TaobaoClient client = new DefaultTaobaoClient("http://gw.api.taobao.com/router/rest", "app_key", "app_secret", "json");
do {
    long quantity = 100L;
    TmcMessagesConsumeResponse rsp = null;
    do {
        TmcMessagesConsumeRequest req = new TmcMessagesConsumeRequest();
        req.setQuantity(quantity);
        req.setGroupName("default");
        rsp = client.execute(req);
        if (rsp.isSuccess() && rsp.getMessages() != null) {
            for (TmcMessage msg : rsp.getMessages()) {
                // handle message
                System.out.println(msg.getContent());
                System.out.println(msg.getTopic());
                // confirm message
                TmcMessagesConfirmRequest cReq = new TmcMessagesConfirmRequest();
                cReq.setGroupName("default");
                cReq.setsMessageIds(String.valueOf(msg.getId()));
                TmcMessagesConfirmResponse cRsp = client.execute(cReq);
                System.out.println(cRsp.getBody());
            }
        }
        System.out.println(rsp.getBody());
    } while (rsp != null && rsp.isSuccess() && rsp.getMessages() != null && rsp.getMessages().size() == quantity);
    Thread.sleep(1000L);
} while (true);

C#サンプル コード

ITopClient client = new DefaultTopClient("http://gw.api.taobao.com/router/rest", "app_key", "app_secret", "json");
do
{
    long quantity = 100L;
    TmcMessagesConsumeResponse rsp = null;
    do
    {
        TmcMessagesConsumeRequest req = new TmcMessagesConsumeRequest();
        req.GroupName = "default";
        req.Quantity = quantity;
        rsp = client.Execute(req);
        if (!rsp.IsError && rsp.Messages != null)
        {
            foreach (TmcMessage msg in Messages)
            {
                // handle message  
                Console.WriteLine(msg.Topic);
                Console.WriteLine(msg.Content);
                // confirm message  
                TmcMessagesConfirmRequest cReq = new TmcMessagesConfirmRequest();
                cReq.GroupName = "default";
                cReq.SMessageIds = msg.Id.ToString();
                TmcMessagesConfirmResponse cRsp = client.Execute(cReq);
                Console.WriteLine(cRsp.Body);
            }
        }
        Console.WriteLine(rsp.Body);
    } while (rsp != null && !rsp.IsError && rsp.Messages != null && rsp.Messages.Count == quantity);
    Thread.Sleep(new TimeSpan(0, 0, 1));
} while (true);
注: API を通じて取得されたメッセージの平均ネットワークが良好な場合、RT は約 10 ミリ秒に達することがあります。消費によって取得されたメッセージが空になるたびに、メッセージをプルするための次のループを実行する前に必ず少なくとも 1 秒間一時停止してください。そうしないと、多くの不要なリクエストが生成され、サーバーの時間、リソース、およびアプリケーション独自の API トラフィック パッケージが無駄になります。

メッセージ グループ化の使用の概要

ユーザーの数が多い場合、複数のマシンがメッセージを受信するためにクラスターを形成する必要があるか、マーチャントが分離されて受信する必要があります。メッセージを個別に送信します。 SDK と API は両方とも、複数の接続を通じてメッセージを受信できます。

メッセージング サービスは、次の 2 つの方法で複数の接続をサポートします: Ⅰ. 複数のユーザー グループを作成し、各ユーザー グループが接続を確立します。 Ⅱ. 同じグループ内で複数の接続を確立する

  • グループの作成: インターフェイス taabao.tmc.group.addを呼び出してカスタム グループを作成します。注: メッセージング サービスは、アプリケーションのデフォルト グループを作成します。指定されたグループ [グループ] に割り当てられていないユーザーは、デフォルト グループに属します。SDK または API を通じてメッセージを使用する場合、グループが指定されていない場合は、デフォルトのグループが作成されます。グループ接続を使用します。
  • グループの削除: インターフェイス taovao.tmc.group.delete を呼び出して、指定したグループまたはグループ配下のユーザーを削除します。注: 各アプリケーションは最大 50 のグループを作成でき、各グループのユーザー数に制限はありません。

淘宝メッセージ サービスを使用するには

LB1n7l2LpXXXXXkXFXXXXXXXXXX.png

サブスクリプション データ返信メッセージ

アプリケーション管理バックグラウンドで、[メッセージの購読] をクリックします。メッセージに権限がない場合は、[権限の適用] をクリックして、対応する付加価値パッケージのアプリケーションを入力します。

LB1l58TLpXXXXXrXVXXXXXXXXXX.png

コードプッシュ メッセージを実装するには

メッセージを返すには 2 つの方法があります: API を介してメッセージを公開するSDK を介してメッセージを公開する。API を使用してメッセージを返すことをお勧めします。メッセージを公開します。

#API 経由でメッセージを公開する

具体的な手順については、API ドキュメントを参照してください:

taovao.tmc.message.Produce

SDK を介したメッセージのパブリッシュ (推奨されません)

現在、JAVA および .NET 言語をサポートしています。他の言語については、API を使用してメッセージをパブリッシュすることをお勧めします。

JAVA コード例

TmcClient client = new TmcClient("app_key", "app_secret", "default");
client.connect("ws://mc.api.taobao.com/");
for (int i = 0; i < 10; i++) {
    client.send("helloworld-topic", "{helloworld-content}", "session_key");
}


##C# コード例

TmcClient client = new TmcClient("app_key", "app_secret", "default");
client.Connect("ws://mc.api.taobao.com/");
for (int i = 0; i < 10; i++)
{
    client.Send("helloworld-topic", "{helloworld-content}", "session_key");
}
一般的なメッセージ タイプ 注

プラットフォームには、構造化されたメッセージ説明ドキュメントが用意されています。ここをクリックして、

メッセージ ドキュメント

を入力してください。また、コンソールでメッセージ サービスにアクセスして、購読および購読解除を行うこともできます。 サンドボックス メッセージ サービスのアクティブ化

1.

http://mini.tbsandbox.com/

にアクセスし、サンドボックスにログインします [独自のサンドボックス アカウントを登録するか、デフォルトのアカウントを使用します。アカウント情報については、http://www.tbsandbox.com/doc/] の「テスト アカウントの作成」の概要を参照してください。 2. サンドボックス テストを選択します。ツール - メッセージ チャネル管理

LB1c9abLpXXXXaaXXXXXXXXXXXX.pngサンドボックス apppkey サブスクリプション メッセージを入力します [サンドボックス テストでは、サンプルとしてテスト製品の在庫変更を使用して、taabao_item_ItemStockChanged をサブスクライブします]

3. サンドボックスで SessionKey を取得するショートカット操作では、サンドボックス AppKey を入力し、検索をクリックして SessionKey を取得します。下図に示すように、sandbox_c_1 認可 1021719331 アプリケーションはデータを取得できますが、認可コードは SessionKey に対応する値です。次に、taabao.tmc.user.permit インターフェイスを呼び出して、1021719331 がメッセージを受信することを承認します。

LB1WMRNLpXXXXcXXVXXXXXXXXXX.png

4. コードの実行 (ws://mc.api.tbsandbox.com/ にリクエスト、サンドボックス アプリキー、シークレット、サンドボックス アカウントを使用、上記のコード部分を参照)公式環境が起動したら、サンドボックス販売者センターに移動して、テストと検証のために在庫を変更できます。

メッセージ サービス FAQ

グループ化とは何か、グループ化が必要かどうか
メッセージ グループ化は、ユーザー メッセージを分離する方法です。グループ内のユーザーのメッセージは、同じグループ名の接続にのみ送信されます。同じグループは複数の接続をサポートし、同じグループ内のメッセージはグループ内の特定の接続にランダムに送信されます。有料ユーザーを優先し、次に無料ユーザーを優先するなど、ユーザー タイプに基づいてメッセージを異なる方法で処理する場合は、メッセージ グループ化を通じてさまざまなユーザーからメッセージを受信できます。各アプリケーションは最大 50 のグループを作成でき、各グループのユーザー数に制限はありません。

複数接続メッセージ受信とは何か、および複数接続を確立する方法
複数接続メッセージ受信とは、同じグループ内の ISV サーバーが TOP メッセージ サーバーとの複数の接続を確立することを意味します。メッセージを受信します。マルチリンクとは、同じグループについて、メッセージが配信されるときに、グループ内の複数の接続から 1 つの接続がランダムに選択されてメッセージが配信されることを意味します。マルチリンクにはメッセージをランダムに配信する機能があり、同じグループ内の複数の接続を使用してクラスタリングと負荷機能を実装できます。

複数のリンクを確立するには、同じコードで TmcClient インスタンスを再起動するだけです。同じグループの複数のリンクは、同じ ISV サーバー上または異なる ISV サーバー上に確立できます。

複数の接続を使用する場合
メッセージサービスのサーバーにはメッセージ蓄積機能があり、クライアントの処理能力に依存します。送信されます。処理できない場合はサーバーに蓄積されます。通常、複数の接続を確立する必要はありません。1 つの接続でマシンのネットワーク カードがいっぱいになる可能性があります。新しいメッセージング サービスのマルチ接続は、ユーザー グループ化またはクラスター展開シナリオでより一般的に使用されます。

メッセージ再送信ロジックとは何ですか?
接続が切断された場合 (アプリケーションのハングなど)、サーバーはメッセージを蓄積し、アプリケーションが再接続するのを待ちます。クライアントに順次プッシュされます。メッセージが生成されてからアプリケーションがメッセージを受信しない場合、サーバー上での最大保存期間は 3 日間で、3 日を超えると自動的に消去されます。接続は正常でもメッセージの処理が失敗した場合、サーバーは、早くても 10 分ごとに初めてメッセージを再送信します。アプリケーションの処理が失敗し続ける場合、サーバーは、メッセージが消去されるまで定期的にメッセージを再送信します。

PHP における json_decode 整数オーバーフローの問題
PHP バージョン 5.3 より下では、json_decode はオペレーティング システムの桁数に依存して数値を解釈します。32 ビット システムでは、最大値のみサポートされます。 2^32 数値の解釈 64 ビット システムでは、サポートされる最大数値は 2^64 です。メッセージサービスのメッセージIDが32ビットシステムの最大値を超えているため、PHPバージョン5.3以上にバージョンアップしないと間違ったメッセージIDが確認され、メッセージ配信が繰り返されてしまいます。解決策は次のとおりです: 1. PHP を 5.3 以降にアップグレードする; 2. アプリケーションを 64 ビット システムに展開する; 3. JSON メッセージ内の数値を正規表現やその他の手段を使用して文字列に置き換えます。

メッセージの切断とハートビート テスト
クライアントはメッセージを直接切断する必要があります: TmcClient.close(); 接続が正常かどうかのハートビート テスト: TmcClient.isOnline();

天猫返金と淘宝返金の違い
天猫返金には天猫からの注文のみが含まれ、淘宝返金には淘宝と天猫からの注文が含まれますが、天猫返金は少し豊かです。プロセス。使用しない場合は淘宝返金メッセージを使用することをお勧めしますが、必要に応じて天猫返金API許可を申請する必要があり、申請後に有効化できます。

メッセージング サービスに遅延は発生しますか?
ユーザーがメッセージング サービス taabao.tmc.user.permit をアクティブ化して有効にするまでに 10 秒かかります。メッセージの利用には基本的に遅延はなく、1秒以内に受信されます。メッセージが蓄積されている場合、またはプログラムが時間内に処理されない場合、遅延が発生します。遅延時間はプログラムの処理能力に関係します。ユーザーのメッセージ サービスのキャンセルは、taabao.tmc.user.cancel 後 1 秒以内に有効になり、キャンセル後、蓄積されたメッセージは引き続き送信され、新しいメッセージは送信されません。

製品メッセージ message.getContent() のニックネームが空であるのは正常ですか?メッセージがどのストアに属しているかを確認するにはどうすればよいですか?
商品情報においてニックネームが空欄の場合がございます。外側の層を使用して、message.getUserNick() または message.getUserId() を取得できます。

メッセージ サービス、ユーザーの有効期限が切れた場合でもメッセージを受信できますか?
メッセージ サービスのプッシュを判断する条件は 2 つあります: 1. ユーザーの権限が有効期間内であるかどうか、2. ユーザーがメッセージ サービス (toabao.tmc.user.permit) を有効化しているかどうか。両方が同時に満たされた場合にのみ、プッシュされます。逆に、ユーザー認証の有効期限が切れた場合はプッシュされません。また、ユーザー認証の有効期限が切れてから 1 か月以内にユーザーのアクティベーション関係が保存され、1 か月後に消去されます。ユーザーが 1 か月以内に再認証した場合、ユーザーのメッセージング サービスを再度有効にする必要はありません。

メッセージを取得した後、確認されない場合、メッセージ サービスはメッセージを再送信する機会を選択します。再送信の回数はメッセージ サービスによって制御されます。何回再送信されますか。遠い?
メッセージ サービスは、未処理のメッセージを 10 分ごとに確認し、適切なタイミングで送信します。3 日以内にメッセージが確認されない場合、メッセージは削除されます。

メッセージが受信されていません。メッセージ サービスがメッセージを見逃しているかどうかを確認するにはどうすればよいですか?
毎日のフィードバックにより、メッセージ サービスにメッセージの漏洩はありません。通常、ISV プログラムがメッセージを受信しないか、プログラムの処理能力によりメッセージがブロックされます。トラブルシューティング メッセージは次の側面から確認できます:
* まず認証 (SessionKey) が有効かどうかを確認します;
* taabao.tmc.user.get を呼び出して現在のユーザーとアクティブ化されたメッセージを確認し、トピックにパラメータを返す; TmcClient を呼び出す; isOnline() はハートビートが正常に接続されているかどうかをテストします。上記のトラブルシューティングが失敗した場合は、AppKey、ユーザー ニックネーム、メッセージ ステータス、おおよそのメッセージ時刻、注文 ID、および製品 num_iid を添付して、問題をサポート センターに送信できます。

クライアント構成パラメータに関する注意事項
.NET SDK: ReconnectIntervalSeconds 再接続時間。TmcClient が切断されたときの再接続の時間間隔を識別します。この値は 10 秒を超える必要があります。この値が小さすぎると、リンクは失敗します。これは、サーバーが 500 ミリ秒以内に再接続を検出すると、新しいリンクが切断されるためです。

商品在庫変更に関する注意事項

  • API(taabao.item.quantity.update、またはtaabao.item.sku.update)で数量を変更する場合商品の在庫がある場合、taabao_item_ItemStockChanged メッセージが生成されます。
  • API (taabao.item.update) を通じて商品数量が更新されるか、ページを通じて商品在庫が変更されると、商品変更メッセージ (taabao_item_ItemUpdate) のみが生成され、taabao_item_ItemStockChanged メッセージは生成されませんメッセージには商品のみが記載されており、在庫数は変更されません。

次の操作では、商品の在庫数量が直接返されます。

  • 商品の撮影時(在庫削減のための撮影時)または支払い時(支払い時)在庫削減のため)(API経由でトランザクションを作成する場合も含む)の場合、上記のメッセージが生成されます。
  • このメッセージは、注文がクローズされたとき、またはサブオーダーがクローズされたときに (API を介したトランザクションのクローズを含む) 生成されます。
  • 買い手が支払いを完了し、売り手がページを通じて注文商品のSKUを変更すると、対応する商品のSKU在庫も変更され、上記のメッセージが生成されます(取引変更メッセージtaovao_trade_TradeChangedはもこの時点で生成されます)。

返金関連メッセージの説明
インターフェイス taovao.trade.fastrefund (高速返金) を通じて返金を行う場合、返金関連メッセージは生成されません。返金関連メッセージ 返金関連メッセージは返金プロセス中にのみ生成されます。高速返金インターフェイス (taabao.trade.fastrefund) は購入者に直接支払いを行った後、取引を終了します。返金プロセスは作成されないため、返金メッセージは生成されません。現在、taobao.trade.fastrrefund インターフェイスをサポートしているのは仮想カテゴリのみです。

時刻、アウトタイム、ローカルタイムのメッセージ関連フィールドの説明

  • time はメッセージの生成時間です
  • outtime はメッセージの現在のプッシュ時間です
  • localtime はローカル マシンの時間です
  • outtime - 時間サーバー側の処理または再送信遅延時間を表します
  • #localtime - outtime はローカル時間と TOP 時間の差、またはネットワーク遅延、またはメッセージ受信後の処理の遅延を示します

メッセージ サービス エラー isp.system-error: 不明なエラー、isv.tmc-switch-off: appkey、アプリがメッセージング チャネル機能を有効にしていませんアプリケーションがサブスクライブしていませんメッセージング サービスを (アクティブ化) するため、メッセージング サービスは TmcClient を使用してメッセージを受信します。

FAQ

    このドキュメントに関する FAQ はありません