StreetPass Relay is a mechanism similar to packet relay for passing StreetPass data among users connected to certain access points using the StreetPass Relay server. It creates opportunities for StreetPass to more users than just those who happen to be in the same place at the same time.
StreetPass Relay takes place for users connected to the following kinds of access points.
- Nintendo Zone
- Nintendo 3DS Station
- FREE SPOT (see Note)
- Wi-Fi (see Note)
May not be available in some facilities.
SteetPass Relay does not operate when the CTR system is connected to an access point registered in its Internet settings.
9.1. Differences From Normal StreetPass
The following sections describe ways in which the communications processes of StreetPass Relay differ from those of normal StreetPass.
If StreetPass Relay will cause problems for your planned application, contact Nintendo to add the application to the list of unsupported titles.
9.1.1. All StreetPass Data Is a Target of Processing
With standard StreetPass, transmissions do not take place if the communication partners do not have StreetPass data for the same title. But with StreetPass Relay, all of the StreetPass data registered in a system is a subject of transmission. As a result, StreetPass communications take place once for each title for a maximum of 12 times.
If the StreetPass Relay server has StreetPass data for the same title that is in a 3DS system, the process is just like standard StreetPass, in that the StreetPass data is both sent and received. But if the StreetPass Relay server does not have StreetPass data for the same title, the only process that takes place is the sending (the uploading) of StreetPass data to the StreetPass Relay server.
9.1.2. Data Just for Friends Is Not Sent or Received
StreetPass Relay operates on the premise that StreetPass communications are taking place between users who are not friends. For this reason, if MESSAGE_TYPEFLAG_FRIEND
is the only flag specified for the messageTypeFlag
parameter when some StreetPass data is created, that data is not uploaded to the StreetPass Relay server.
Note that depending on your application's specifications, the StreetPass data that is passed between friends via direct StreetPass may differ from the StreetPass data that is passed via StreetPass Relay.
9.1.3. Exchange Peers Differ
Given the StreetPass Relay specifications, StreetPass data set with a transmission mode of Exchange is not necessarily exchanged among StreetPass users.
Assume that data has been exchanged between three users in the order A → B → C via StreetPass Relay. The process works as follows.
- User A sends data to the StreetPass Relay server. (StreetPass does not take place.)
- User B sends (user B) data to the StreetPass Relay server and receives user A's data from the server.
- User C sends (user C) data to the StreetPass Relay server and receives user B's data from the server.
In other words, user B receives user A's data, but user A does not receive user B's data.
9.2. Testing StreetPass Relay
Use the BossLotcheckTool to test StreetPass Relay with the development hardware. For more information, see the reference for the BossLotcheckTool
tool in the CTR documentation. To test StreetPass Relay, you must prepare several units of the development hardware (a minimum of two, but three or more is recommended).
The development hardware will not perform the StreetPass Relay processes even if it is connected to one of the kinds of access points mentioned in 9. Appendix: StreetPass Relay. The StreetPass Relay server distinguishes between data received from retail devices and from development hardware, so that StreetPass communications do not take place between retail devices and development hardware.
The StreetPass Relay test feature is supported by the BossLotcheckTool included in CRT-SDK.
The objective of testing StreetPass Relay is to determine whether your design can tolerate the changes in functionality that may arise due to the differences described in 9.1. Differences From Normal StreetPass. If you have implemented standard StreetPass correctly, there will be no problems or errors in the sending and receiving of StreetPass data, so you do not need to check whether StreetPass Relay can also do this normally.
9.3. Testing Procedure Using BossLotcheckTool
Follow this procedure to test StreetPass relay.
- Register some StreetPass data.
- Start BossLotcheckTool on the development hardware used in step (1), and from the menu select Check functions > SPRelay > Forced Task Start.
- Wait for the message on the upper screen to change from "Executing SPRelay..."
- Confirm that the changed message says "Executed(HttpStatus:200)"
If another message displays, StreetPass Relay has not completed normally. For more information about the displayed messages, see 9.3.1. Execution Results of Forced Task Start. - Execute steps 1 through 4 on the other development hardware units.
Selecting Forced Task Start in the test procedure forces the StreetPass Relay process to run. The limitation of a maximum of 8 hours without transmissions between communication partners is ignored. The process runs via the access point that the development hardware is connected to, so you can perform the testing without preparing a special communications environment like Nintendo Zone. The StreetPass Relay process runs even if no StreetPass data is registered in the CTR system or if the Parental Controls have been set to restrict the process. However, the execution result of Forced Task Start in an error.
When you conduct this test for the first time (when you connect to the StreetPass Relay server for the first time), only the sending of StreetPass data occurs. In subsequent tests using different development hardware, the StreetPass data is both sent and received, and when data is received the notification LED illuminates green, just like for regular StreetPass.
Do not select Enable in the menu that appears after you have selected SPRelay. Selecting this option sets the StreetPass Relay process to occur when the Nintendo Zone beacon is detected, which could hinder the testing of standard StreetPass.
9.3.1. Execution Results of Forced Task Start
The result of executing Forced Task Start is displayed in the following format.
$TaskResult(HttpStatus:$HttpStatusCode)
The $TaskResult portion shows the execution result of the BOSS process (the StreetPass Relay task) that was performed for StreetPass Relay. The table explains the execution that can be shown here.
Execution Results |
Description of Execution Result |
---|---|
Executed |
The StreetPass Relay task executed normally. The value 200 is always shown for the $HttpStatusCode portion of the result. Even if the task executes normally, data sometimes is not exchanged for the following reasons.
|
Error |
A nonretryable error occurred when the StreetPass Relay task executed. If this execution result is displayed, check the HTTP status code displayed for $HttpStatusCode in addition to the following settings.
|
Retry |
A retryable error occurred when the StreetPass Relay task executed. If this execution result displays, check the following settings.
|
The $HttpStatusCode
portion of the execution result shows the HTTP status code returned from the StreetPass Relay server. The following table lists these HTTP status codes and explains their meanings.
HTTP Status Code |
Meaning of HTTP Status Code |
---|---|
200 |
StreetPass Relay succeeded. |
400 |
StreetPass Relay failed. There was a problem with the client request (development hardware setting). |
500 |
StreetPass Relay failed. There was an error on the StreetPass relay server. |
503 |
StreetPass Relay failed. The StreetPass relay server is down for maintenance. |
The HTTP status codes returned by the StreetPass Relay server may change in the future.