9. 付録:すれちがい通信中継

すれちがい通信中継は、すれちがい通信中継サーバーを利用して、特定のアクセスポイントに接続したユーザー間でバケツリレーのようにすれちがいデータを渡す仕組みです。この仕組みにより、同じ時間、同じ場所でなければ発生しなかったすれちがい通信の機会を、より多くのユーザーにもたらすことができます。

以下のアクセスポイントに接続すると、すれちがい通信中継が行われます。

  • ニンテンドーゾーン
  • ニンテンドー3DSステーション
  • FREE SPOT(※)
  • Wifine(※)

※ 一部の施設では利用できない場合があります。

補足:

本体のインターネット設定に登録されているアクセスポイントに接続した際には、すれちがい通信中継は行われません。

9.1. 通常のすれちがい通信との違い

すれちがい通信中継で行われるすれちがい通信の処理と通常のすれちがい通信で行われる処理には、以下のような点で違いがあります。

補足:

すれちがい通信中継が行われるとアプリケーションの企画上問題が発生する場合には、非対応タイトルリストへの登録を弊社窓口までご連絡ください。

9.1.1. すべてのすれちがいデータが処理の対象となる

通常のすれちがい通信では通信する相手の本体に同じタイトルのすれちがいデータがなければ通信を行いませんが、すれちがい通信中継では本体に登録されているすべてのすれちがいデータで通信が行われます。そのため、各タイトルで 1 回ずつ、最大で 12 回のすれちがい通信が行われます。

すれちがい通信中継サーバーに同じタイトルのすれちがいデータがある場合は、通常のすれちがい通信と同様に、すれちがいデータの受信および送信が行われます。すれちがい通信中継サーバーに同じタイトルのすれちがいデータがない場合は、すれちがい通信中継サーバーへのすれちがいデータの送信(アップロード)だけが行われます。

9.1.2. フレンド向けのデータは送受信されない

すれちがい通信中継はフレンドではないユーザーとのすれちがい通信として処理されます。そのため、すれちがいデータ作成時の引数 messageTypeFlagMESSAGE_TYPEFLAG_FRIEND のみが指定されているデータはすれちがい通信中継サーバーにアップロードされません。

このことにより、アプリケーションの仕様によっては、フレンド関係にあるユーザー間で、直接すれちがい通信が行われた場合とすれちがい通信中継が行われた場合とで渡されるすれちがいデータが異なるという事象が発生することに留意してください。

9.1.3. 交換の相手が異なる

すれちがい通信中継の仕様上、送受信モードが「交換」のすれちがいデータは、必ずしもすれ違ったユーザー同士で交換されるとは限りません。

たとえば、A → B → C の 3 人が順にすれちがい通信中継による交換を行った場合、以下のような挙動となります。

  • A はすれちがい通信中継サーバーに自分のデータを送信する。(すれ違っていない状態となる)
  • B は A のデータを受信し、すれちがい通信中継サーバーに自分のデータを送信する。
  • C は B のデータを受信し、すれちがい通信中継サーバーに自分のデータを送信する。

つまり、B は A のデータを受信しているが、B のデータを A が受信していないことになります。

9.2. すれちがい通信中継のテスト

開発機でのすれちがい通信中継のテストは、BossLotcheckTool を用いて行います。詳しくは CTR のツール「BossLotcheckTool」のリファレンスを参照してください。なお、すれちがい通信中継を行うには、開発機を複数台(最低でも 2 台、3 台以上推奨)用意する必要があります。

補足:

開発機では「9. 付録:すれちがい通信中継」に記載されているアクセスポイントと接続しても、すれちがい通信中継の処理は行われません。また、すれちがい通信中継サーバーは開発機と製品機で送受信するすれちがいデータを区別するため、開発機と製品機の間ですれちがい通信が行われることはありません。

すれちがい通信中継のテスト機能は CTR-SDK に含まれる BossLotcheckTool で対応しています。

すれちがい通信中継のテストの目的は、「9.1. 通常のすれちがい通信との違い」で説明した違いによる挙動の変化が企画上許容可能なものかどうかの確認です。通常のすれちがい通信処理が正しく実装されていれば送受信されるすれちがいデータ自体の問題やエラーは発生しませんので、すれちがい通信中継でも正常に通信できるかを確認する必要はありません。

9.3. BossLotcheckTool を使用したテスト手順

以下の手順に沿って、すれちがい通信中継のテストを行ってください。

  1. すれちがいデータを登録する。
  2. 手順 1 の開発機で BossLotcheckTool を起動し、起動メニューから「Check functions」→「SPRelay」→「Forced Task Start」の順に選択する。
  3. 上画面に表示されているメッセージが「Executing SPRelay...」から変化するまで待つ。
  4. 変化後のメッセージが「Executed(HttpStatus:200)」であることを確認する。
    ほかのメッセージが表示された場合はすれちがい通信中継が正常に完了していません。表示されるメッセージの詳細については、「9.3.1. Forced Task Start の実行結果」を参照してください。
  5. 別の開発機で手順 1~4 を実行する。

 

補足:

このテスト手順で選択した「Forced Task Start」では、すれちがい通信中継処理が強制的に実行されます。また、同じ通信相手とは最大で 8 時間通信しないという制限も無視されます。なお、開発機が接続しているアクセスポイントを通して実行されるため、ニンテンドーゾーン等の特別な通信環境を用意しなくてもテストすることができます。本体にすれちがいデータが 1 つも登録されていない状態やペアレンタルコントロールで制限された状態であってもすれちがい通信中継処理は実行されますが、Forced Task Start の実行結果はエラーとなります。

このテストを初めて行ったとき(すれちがい通信中継サーバーに初めて接続したとき)には、すれちがいデータの送信のみが行われます。その後のテストで別の開発機を用いたときには、すれちがいデータの送信と受信の両方が行われ、受信した場合にはすれちがい通信と同様におしらせランプが緑色に点灯します。

注意:

「SPRelay」を選択したあとに表示されるメニューの「Enable」は選択しないでください。選択した場合、ニンテンドーゾーンのビーコンを検知したときにすれちがい通信中継の処理が行われるように設定されるため、通常のすれちがい通信を対象としたテストを妨げてしまう可能性があります。

9.3.1. Forced Task Start の実行結果

Forced Task Start の実行結果は以下のフォーマットで表示されます。

$TaskResult(HttpStatus:$HttpStatusCode)

$TaskResult の部分には、すれちがい通信中継のために行われている BOSS の処理(すれちがい通信中継タスク)の実行結果が表示されます。表示される実行結果とその意味については、以下の表を参照してください。

表 9-1. すれちがい通信中継タスクの実行結果

実行結果

実行結果の意味と詳細

Executed

すれちがい通信中継タスクが正常に実行されました。なお、$HttpStatusCode の部分には必ず 200 が表示されます。

正常に実行された場合でも、以下の理由ですれちがいデータの送受信が行われないことがあります。

  • 同じアクセスポイント、同じ開発機で連続してすれちがい通信中継を実行した。(アップロードしたすれちがいデータがほかの本体に渡されない限り、アップロード自体が行われません)
  • 使用したアクセスポイントで初めてすれちがい通信中継を実行した。(すれちがいデータのアップロードのみが行われます)

Error

すれちがい通信中継タスクの実行でリトライ不可能なエラーが発生しました。

この実行結果が表示された場合には、$HttpStatusCode に表示された HTTP ステータスコードおよび以下の設定を確認してください。

  • ペアレンタルコントロールで、すれちがい通信が制限されていないか。
  • すれちがいデータが本体に登録されているか。

Retry

すれちがい通信中継タスクの実行でリトライ可能なエラーが発生しました。

この実行結果が表示された場合には、以下の設定を確認してください。

  • 通信が切断されていないか。
  • 無線通信の電波環境は悪くないか。
  • すれちがい通信中継の実行中に、本体の開閉や無線スイッチの操作を行っていないか。

$HttpStatusCode の部分には、すれちがい通信中継サーバーから返ってきた HTTP ステータスコードが表示されます。表示される HTTP ステータスコードとその意味については、以下の表を参照してください。

表 9-2. すれちがい通信中継サーバーから返される HTTP ステータスコードとその意味

HTTP ステータスコード

HTTP ステータスコードの意味

200

すれちがい中継処理が成功しました。

400

すれちがい中継処理が失敗しました。

クライアント側のリクエスト(開発機側の設定)に問題があります。

500

すれちがい中継処理が失敗しました。

すれちがい通信中継サーバー側のエラーです。

503

すれちがい中継処理が失敗しました。

すれちがい通信中継サーバーがメンテナンス中です。

補足:

すれちがい通信中継サーバーが返す HTTP ステータスコードは、今後変更される可能性があります。