NAV Navbar
Python Java GS2-Formation
 

GS2-Realtime

対戦・協力プレイ機能を実現します。

ルームを作成すると、IPアドレス ポート 暗号鍵 の3つの情報が発行されます。 ルームに参加するには、発行された IPアドレス ポート に WebSocket で接続します。 その通信には発行された 暗号鍵 を使用して通信します。

GS2-Realtime のデータ構造は以下です。

利用料金

GS2-Realtime は通常の料金モデルとは異なる料金モデルを採用します。 ルームの起動時間1分あたりの利用料金と、データのアウトバウンド通信容量に対して費用が発生します。 ルームが1つであれば、ルームへの参加者が2人でも100人でも利用料金は変わりません。

正式サービス開始までにサーバのスペックの変更をできるようにします。 対戦人数が多い場合や、通信頻度が高い場合は高スペックなサーバを必要とする場合があります。

正式サービス開始後のマイルストーンとして、サーバサイドの実装を差し替える機能を提供予定です。 この機能が実装されると、サーバ側でロジックを定義できるようになり、パケットリレーよりも柔軟なサーバ機能を利用できるようになります。 この場合、サーバサイドのロジックの複雑さによって高スペックなサーバを必要とする場合があります。

現在利用可能なものは realtime1.nano のみです。

スペック 1分あたりの利用料金
realtime1.nano 0.04円
realtime1.micro 0.06円
realtime1.small 0.12円
realtime1.medium 0.24円
realtime1.large 0.5円

データ転送容量(アウトバウンド)

15円/1GB

同時接続数や通信頻度の制限はありません。

ルームのライフサイクル

作成

GS2-Realtime はルームの作成リクエストを受け付けてからサーバを起動します。 この時、ルームの数が規定数未満の場合は規定数に達するようホットスタンバイとなるルームを追加で起動します。 規定数の数はGS2によって自動的に調整されます。

つまり、リクエストを受け付けてからサーバを起動する コールドスタート 時と ホットスタンバイされたルームを利用する ホットスタート でルームの作成リクエストを受け付けてから実際に割り当てられるまでの時間に差が生じます。

コールドスタート時の待ち時間の目安は 40秒〜60秒 ホットスタート時の待ち時間の目安は3〜5秒です。

終了

起動されたルームは作成後5分間誰も接続に来なかった場合終了されます。 この終了処理はホットスタンバイのルームにも適用されますが、ホットスタンバイの起動時間は利用料金に加算されません。

ルームに参加するすべてのプレイヤーから無通信状態が1分間続いても自動的に終了されます。

ルームの最大起動時間は3時間です。作成から3時間が経過すると自動的に終了されます。

コールドスタートの発生条件

モデル

Namespace

ネームスペース

パラメータ データ型 必須 説明
namespaceId string true ネームスペース
ownerId string true オーナーID
name string true ネームスペース名
description string false ネームスペースの説明
serverType string true サーバの種類
serverSpec string true サーバのスペック
createNotification NotificationSetting false ルームの作成が終わったときのプッシュ通知
logSetting LogSetting false ログの出力設定
createdAt long true 作成日時
updatedAt long true 最終更新日時

Room

ルーム

作成直後はIPアドレス・待受ポートは空欄となります。 ゲームサーバの起動が完了するとIPアドレス・待受ポートが設定されます。 IPアドレス・待受ポートが設定されたことをサーバから通知してほしい場合は、 ネームスペースの設定の『ルームの作成が終わったときのプッシュ通知』を設定し、ルームの作成時に通知を受けるユーザIDを設定することで通知が受けられます。

パラメータ データ型 必須 説明
roomId string true ルーム
name string true ルーム名
ipAddress string false IPアドレス
port integer false 待受ポート
encryptionKey string false 暗号鍵
notificationUserIds list[string] false ルームの作成が終わったときに通知を受けるユーザIDリスト
createdAt long true 作成日時
updatedAt long true 最終更新日時

NotificationSetting

プッシュ通知設定

パラメータ データ型 必須 説明
gatewayNamespaceId string false プッシュ通知に使用する GS2-Gateway のネームスペース のGRN
enableTransferMobileNotification boolean false モバイルプッシュ通知へ転送するか
sound string false モバイルプッシュ通知で使用するサウンドファイル名

LogSetting

ロギング通知設定

パラメータ データ型 必須 説明
loggingNamespaceId string false ログの記録に使用する GS2-Log のネームスペース のGRN

初期化処理

HTTPプロトコル クライアントの初期化 同期処理

import gs2_core_client.model.*
import gs2_realtime_client.rest.*

session = Gs2RestSession(
    region=Region.AP_NORTHEAST_1,
    credential=BasicGs2Credential(
        client_id='your client id',
        client_secret='your client secret',
    ),
)
session.connect()
client = Gs2RealtimeRestClient(session)
import io.gs2.core.model.Region
import io.gs2.core.model.BasicGs2Credential
import io.gs2.core.rest.Gs2RestSession
import io.gs2.realtime.rest.Gs2RealtimeRestClient

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
)
session.connect()
Gs2RealtimeRestClient client = new Gs2RealtimeRestClient(session)
初期化処理は不要です

HTTPプロトコル クライアントの初期化 非同期処理

import gs2_core_client.model.*
import gs2_realtime_client.rest.*

session = Gs2RestSession(
    region=Region.AP_NORTHEAST_1,
    credential=BasicGs2Credential(
        client_id='your client id',
        client_secret='your client secret',
    ),
)

def complete(result: AsyncResult[None]):
    client = Gs2RealtimeRestClient(session)

session.connect_async(
    complete,
)
import io.gs2.core.model.Region
import io.gs2.core.model.BasicGs2Credential
import io.gs2.core.rest.Gs2RestSession
import io.gs2.realtime.rest.Gs2RealtimeRestClient

Gs2RestSession session = new Gs2RestSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
)

session.connect_async(
    (result) => {
        Gs2RealtimeRestClient client = new Gs2RealtimeRestClient(session)
    }
)
初期化処理は不要です

WebSocketプロトコル クライアントの初期化 同期処理

import gs2_core_client.model.*
import gs2_realtime_client.web_socket.*

session = Gs2WebSocketSession(
    region=Region.AP_NORTHEAST_1,
    credential=BasicGs2Credential(
        client_id='your client id',
        client_secret='your client secret',
    ),
)
session.connect()
client = Gs2RealtimeWebSocketClient(session)
import io.gs2.core.model.Region
import io.gs2.core.model.BasicGs2Credential
import io.gs2.core.webSocket.Gs2WebSocketSession
import io.gs2.realtime.webSocket.Gs2RealtimeWebSocketClient

Gs2WebSocketSession session = new Gs2WebSocketSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
)

session.connect()
Gs2RealtimeWebSocketClient client = new Gs2RealtimeWebSocketClient(session)
初期化処理は不要です

WebSocketプロトコル クライアントの初期化 非同期処理

import gs2_core_client.model.*
import gs2_realtime_client.web_socket.*

session = Gs2WebSocketSession(
    region=Region.AP_NORTHEAST_1,
    credential=BasicGs2Credential(
        client_id='your client id',
        client_secret='your client secret',
    ),
)

def complete(result: AsyncResult[None]):
    client = Gs2RealtimeWebSocketClient(session)

session.connect_async(
    complete,
)
import io.gs2.core.model.Region
import io.gs2.core.model.BasicGs2Credential
import io.gs2.core.webSocket.Gs2WebSocketSession
import io.gs2.realtime.webSocket.Gs2RealtimeWebSocketClient

Gs2WebSocketSession session = new Gs2WebSocketSession(
    Region.AP_NORTHEAST_1,
    new BasicGs2Credential(
        'your client id',
        'your client secret'
    )
)

session.connect_async(
    (result) => {
        Gs2RealtimeWebSocketClient client = new Gs2RealtimeWebSocketClient(session)
    }
)
初期化処理は不要です

GS2-Realtime は HTTPプロトコル と WebSocketプロトコル の2種類のプロトコルをサポートしています。

HTTPプロトコル と WebSocketプロトコル の違いは以下に示すとおりです。

HTTP WebSocket
接続方式 都度接続 常時接続
応答性能 優れている
API制限 なし 大容量のデータをやりとりするAPIには使用不可(主にマスターデータ系処理)
利用料金 WebSocketと同一 HTTPと同一

終了処理

HTTPプロトコル クライアントの終了処理

session.disconnect()
session.disconnect();
終了処理は不要です

WebSocketプロトコル クライアントの終了処理

session.disconnect()
session.disconnect();
終了処理は不要です

session オブジェクトの切断処理を行って終了処理を行います。 同一 session オブジェクトを複数の異なる Client オブジェクトに渡すことができます。

メソッド

createNamespace

同期処理

from gs2_realtime_client.request import CreateNamespaceRequest
from gs2_realtime_client.result import CreateNamespaceResult

result = client.create_namespace(
    CreateNamespaceRequest()\
        .with_name('realtime-0001')\
        .with_server_type('relay')\
        .with_server_spec('realtime1.nano')\
        .with_log_setting(Object("LogSetting", {"loggingNamespaceId": 'grn:gs2:ap-northeast-1:{ownerId}:log:namespace-0001'}))
)
# エラー発生時には例外が発生
# result が成功結果が格納
import io.gs2.realtime.request.CreateNamespaceRequest
import io.gs2.realtime.result.CreateNamespaceResult

result = client.createNamespace(
    CreateNamespaceRequest()
        .withName("realtime-0001")
        .withServerType("relay")
        .withServerSpec("realtime1.nano")
        .withLogSetting(Object("LogSetting", {"loggingNamespaceId": "grn:gs2:ap-northeast-1:{ownerId}:log:namespace-0001"}))
)
// エラー発生時には例外が発生
// result が成功結果が格納
同期APIは実装されていません

非同期処理

from gs2_realtime_client.request import CreateNamespaceRequest
from gs2_realtime_client.result import CreateNamespaceResult

def callback(async_result: AsyncResult[CreateNamespaceResult]):
    if async_result.error:
        #  エラー発生時には async_result.error に例外が格納
        raise async_result.error
    # async_result.result が成功結果格納

result = client.create_namespace_async(
    CreateNamespaceRequest()\
        .with_name('realtime-0001')\
        .with_server_type('relay')\
        .with_server_spec('realtime1.nano')\
        .with_log_setting(Object("LogSetting", {"loggingNamespaceId": 'grn:gs2:ap-northeast-1:{ownerId}:log:namespace-0001'})),
    callback
)
import io.gs2.realtime.request.CreateNamespaceRequest
import io.gs2.realtime.result.CreateNamespaceResult

result = client.createNamespace(
    CreateNamespaceRequest()
        .withName("realtime-0001")
        .withServerType("relay")
        .withServerSpec("realtime1.nano")
        .withLogSetting(Object("LogSetting", {"loggingNamespaceId": "grn:gs2:ap-northeast-1:{ownerId}:log:namespace-0001"})),
    (result) => {
        if (result.getError() != null) {
            // エラー発生時には result.getError() で例外を取得
            throw result.getError()
        }
        // result.getResult() で成功結果を取得
    }
)
Type: GS2::Realtime::Namespace
Properties:
  Name: String
  Description: Optional[String]
  ServerType: String
  ServerSpec: String
  CreateNotification:
    GatewayNamespaceId: Optional[String]
    EnableTransferMobileNotification: Optional[Bool]
    Sound: Optional[String]
  LogSetting:
    LoggingNamespaceId: Optional[String]

ネームスペースを新規作成

パラメータ データ型 必須 説明
name string true ネームスペース名
description string false ネームスペースの説明
serverType string true サーバの種類
serverSpec string true サーバのスペック
createNotification NotificationSetting false ルームの作成が終わったときのプッシュ通知
logSetting LogSetting false ログの出力設定
パラメータ データ型 説明
item Namespace 作成したネームスペース

deleteNamespace

同期処理

from gs2_realtime_client.request import DeleteNamespaceRequest
from gs2_realtime_client.result import DeleteNamespaceResult

result = client.delete_namespace(
    DeleteNamespaceRequest()\
        .with_namespace_name('realtime-0001')
)
# エラー発生時には例外が発生
# result が成功結果が格納
import io.gs2.realtime.request.DeleteNamespaceRequest
import io.gs2.realtime.result.DeleteNamespaceResult

result = client.deleteNamespace(
    DeleteNamespaceRequest()
        .withNamespaceName("realtime-0001")
)
// エラー発生時には例外が発生
// result が成功結果が格納
同期APIは実装されていません

非同期処理

from gs2_realtime_client.request import DeleteNamespaceRequest
from gs2_realtime_client.result import DeleteNamespaceResult

def callback(async_result: AsyncResult[DeleteNamespaceResult]):
    if async_result.error:
        #  エラー発生時には async_result.error に例外が格納
        raise async_result.error
    # async_result.result が成功結果格納

result = client.delete_namespace_async(
    DeleteNamespaceRequest()\
        .with_namespace_name('realtime-0001'),
    callback
)
import io.gs2.realtime.request.DeleteNamespaceRequest
import io.gs2.realtime.result.DeleteNamespaceResult

result = client.deleteNamespace(
    DeleteNamespaceRequest()
        .withNamespaceName("realtime-0001"),
    (result) => {
        if (result.getError() != null) {
            // エラー発生時には result.getError() で例外を取得
            throw result.getError()
        }
        // result.getResult() で成功結果を取得
    }
)

GS2-Deploy から利用できません

ネームスペースを削除

パラメータ データ型 必須 説明
namespaceName string true ネームスペース名
パラメータ データ型 説明
item Namespace 削除したネームスペース

deleteRoom

同期処理

from gs2_realtime_client.request import DeleteRoomRequest
from gs2_realtime_client.result import DeleteRoomResult

result = client.delete_room(
    DeleteRoomRequest()\
        .with_namespace_name('realtime-0001')\
        .with_room_name('room-0001')
)
# エラー発生時には例外が発生
# result が成功結果が格納
import io.gs2.realtime.request.DeleteRoomRequest
import io.gs2.realtime.result.DeleteRoomResult

result = client.deleteRoom(
    DeleteRoomRequest()
        .withNamespaceName("realtime-0001")
        .withRoomName("room-0001")
)
// エラー発生時には例外が発生
// result が成功結果が格納
同期APIは実装されていません

非同期処理

from gs2_realtime_client.request import DeleteRoomRequest
from gs2_realtime_client.result import DeleteRoomResult

def callback(async_result: AsyncResult[DeleteRoomResult]):
    if async_result.error:
        #  エラー発生時には async_result.error に例外が格納
        raise async_result.error
    # async_result.result が成功結果格納

result = client.delete_room_async(
    DeleteRoomRequest()\
        .with_namespace_name('realtime-0001')\
        .with_room_name('room-0001'),
    callback
)
import io.gs2.realtime.request.DeleteRoomRequest
import io.gs2.realtime.result.DeleteRoomResult

result = client.deleteRoom(
    DeleteRoomRequest()
        .withNamespaceName("realtime-0001")
        .withRoomName("room-0001"),
    (result) => {
        if (result.getError() != null) {
            // エラー発生時には result.getError() で例外を取得
            throw result.getError()
        }
        // result.getResult() で成功結果を取得
    }
)

GS2-Deploy から利用できません

ルームを削除

パラメータ データ型 必須 説明
namespaceName string true ネームスペース名
roomName string true ルーム名
パラメータ データ型 説明
item Room ルーム

describeNamespaces

同期処理

from gs2_realtime_client.request import DescribeNamespacesRequest
from gs2_realtime_client.result import DescribeNamespacesResult

result = client.describe_namespaces(
    DescribeNamespacesRequest()\
)
# エラー発生時には例外が発生
# result が成功結果が格納
import io.gs2.realtime.request.DescribeNamespacesRequest
import io.gs2.realtime.result.DescribeNamespacesResult

result = client.describeNamespaces(
    DescribeNamespacesRequest()
)
// エラー発生時には例外が発生
// result が成功結果が格納
同期APIは実装されていません

非同期処理

from gs2_realtime_client.request import DescribeNamespacesRequest
from gs2_realtime_client.result import DescribeNamespacesResult

def callback(async_result: AsyncResult[DescribeNamespacesResult]):
    if async_result.error:
        #  エラー発生時には async_result.error に例外が格納
        raise async_result.error
    # async_result.result が成功結果格納

result = client.describe_namespaces_async(
    DescribeNamespacesRequest()\
    callback
)
import io.gs2.realtime.request.DescribeNamespacesRequest
import io.gs2.realtime.result.DescribeNamespacesResult

result = client.describeNamespaces(
    DescribeNamespacesRequest(),
    (result) => {
        if (result.getError() != null) {
            // エラー発生時には result.getError() で例外を取得
            throw result.getError()
        }
        // result.getResult() で成功結果を取得
    }
)

GS2-Deploy から利用できません

ネームスペースの一覧を取得

パラメータ データ型 必須 説明
pageToken string false データの取得を開始する位置を指定するトークン
limit long false データの取得件数
パラメータ データ型 説明
items list[Namespace] ネームスペースのリスト
nextPageToken string リストの続きを取得するためのページトークン

describeRooms

同期処理

from gs2_realtime_client.request import DescribeRoomsRequest
from gs2_realtime_client.result import DescribeRoomsResult

result = client.describe_rooms(
    DescribeRoomsRequest()\
        .with_namespace_name('realtime-0001')
)
# エラー発生時には例外が発生
# result が成功結果が格納
import io.gs2.realtime.request.DescribeRoomsRequest
import io.gs2.realtime.result.DescribeRoomsResult

result = client.describeRooms(
    DescribeRoomsRequest()
        .withNamespaceName("realtime-0001")
)
// エラー発生時には例外が発生
// result が成功結果が格納
同期APIは実装されていません

非同期処理

from gs2_realtime_client.request import DescribeRoomsRequest
from gs2_realtime_client.result import DescribeRoomsResult

def callback(async_result: AsyncResult[DescribeRoomsResult]):
    if async_result.error:
        #  エラー発生時には async_result.error に例外が格納
        raise async_result.error
    # async_result.result が成功結果格納

result = client.describe_rooms_async(
    DescribeRoomsRequest()\
        .with_namespace_name('realtime-0001'),
    callback
)
import io.gs2.realtime.request.DescribeRoomsRequest
import io.gs2.realtime.result.DescribeRoomsResult

result = client.describeRooms(
    DescribeRoomsRequest()
        .withNamespaceName("realtime-0001"),
    (result) => {
        if (result.getError() != null) {
            // エラー発生時には result.getError() で例外を取得
            throw result.getError()
        }
        // result.getResult() で成功結果を取得
    }
)

GS2-Deploy から利用できません

ルームの一覧を取得

パラメータ データ型 必須 説明
namespaceName string true ネームスペース名
pageToken string false データの取得を開始する位置を指定するトークン
limit long false データの取得件数
パラメータ データ型 説明
items list[Room] ルームのリスト
nextPageToken string リストの続きを取得するためのページトークン

getNamespace

同期処理

from gs2_realtime_client.request import GetNamespaceRequest
from gs2_realtime_client.result import GetNamespaceResult

result = client.get_namespace(
    GetNamespaceRequest()\
        .with_namespace_name('realtime-0001')
)
# エラー発生時には例外が発生
# result が成功結果が格納
import io.gs2.realtime.request.GetNamespaceRequest
import io.gs2.realtime.result.GetNamespaceResult

result = client.getNamespace(
    GetNamespaceRequest()
        .withNamespaceName("realtime-0001")
)
// エラー発生時には例外が発生
// result が成功結果が格納
同期APIは実装されていません

非同期処理

from gs2_realtime_client.request import GetNamespaceRequest
from gs2_realtime_client.result import GetNamespaceResult

def callback(async_result: AsyncResult[GetNamespaceResult]):
    if async_result.error:
        #  エラー発生時には async_result.error に例外が格納
        raise async_result.error
    # async_result.result が成功結果格納

result = client.get_namespace_async(
    GetNamespaceRequest()\
        .with_namespace_name('realtime-0001'),
    callback
)
import io.gs2.realtime.request.GetNamespaceRequest
import io.gs2.realtime.result.GetNamespaceResult

result = client.getNamespace(
    GetNamespaceRequest()
        .withNamespaceName("realtime-0001"),
    (result) => {
        if (result.getError() != null) {
            // エラー発生時には result.getError() で例外を取得
            throw result.getError()
        }
        // result.getResult() で成功結果を取得
    }
)

GS2-Deploy から利用できません

ネームスペースを取得

パラメータ データ型 必須 説明
namespaceName string true ネームスペース名
パラメータ データ型 説明
item Namespace ネームスペース

getNamespaceStatus

同期処理

from gs2_realtime_client.request import GetNamespaceStatusRequest
from gs2_realtime_client.result import GetNamespaceStatusResult

result = client.get_namespace_status(
    GetNamespaceStatusRequest()\
        .with_namespace_name('realtime-0001')
)
# エラー発生時には例外が発生
# result が成功結果が格納
import io.gs2.realtime.request.GetNamespaceStatusRequest
import io.gs2.realtime.result.GetNamespaceStatusResult

result = client.getNamespaceStatus(
    GetNamespaceStatusRequest()
        .withNamespaceName("realtime-0001")
)
// エラー発生時には例外が発生
// result が成功結果が格納
同期APIは実装されていません

非同期処理

from gs2_realtime_client.request import GetNamespaceStatusRequest
from gs2_realtime_client.result import GetNamespaceStatusResult

def callback(async_result: AsyncResult[GetNamespaceStatusResult]):
    if async_result.error:
        #  エラー発生時には async_result.error に例外が格納
        raise async_result.error
    # async_result.result が成功結果格納

result = client.get_namespace_status_async(
    GetNamespaceStatusRequest()\
        .with_namespace_name('realtime-0001'),
    callback
)
import io.gs2.realtime.request.GetNamespaceStatusRequest
import io.gs2.realtime.result.GetNamespaceStatusResult

result = client.getNamespaceStatus(
    GetNamespaceStatusRequest()
        .withNamespaceName("realtime-0001"),
    (result) => {
        if (result.getError() != null) {
            // エラー発生時には result.getError() で例外を取得
            throw result.getError()
        }
        // result.getResult() で成功結果を取得
    }
)

GS2-Deploy から利用できません

ネームスペースの状態を取得

パラメータ データ型 必須 説明
namespaceName string true ネームスペース名
パラメータ データ型 説明
status string

getRoom

同期処理

from gs2_realtime_client.request import GetRoomRequest
from gs2_realtime_client.result import GetRoomResult

result = client.get_room(
    GetRoomRequest()\
        .with_namespace_name('realtime-0001')\
        .with_room_name('room-0001')
)
# エラー発生時には例外が発生
# result が成功結果が格納
import io.gs2.realtime.request.GetRoomRequest
import io.gs2.realtime.result.GetRoomResult

result = client.getRoom(
    GetRoomRequest()
        .withNamespaceName("realtime-0001")
        .withRoomName("room-0001")
)
// エラー発生時には例外が発生
// result が成功結果が格納
同期APIは実装されていません

非同期処理

from gs2_realtime_client.request import GetRoomRequest
from gs2_realtime_client.result import GetRoomResult

def callback(async_result: AsyncResult[GetRoomResult]):
    if async_result.error:
        #  エラー発生時には async_result.error に例外が格納
        raise async_result.error
    # async_result.result が成功結果格納

result = client.get_room_async(
    GetRoomRequest()\
        .with_namespace_name('realtime-0001')\
        .with_room_name('room-0001'),
    callback
)
import io.gs2.realtime.request.GetRoomRequest
import io.gs2.realtime.result.GetRoomResult

result = client.getRoom(
    GetRoomRequest()
        .withNamespaceName("realtime-0001")
        .withRoomName("room-0001"),
    (result) => {
        if (result.getError() != null) {
            // エラー発生時には result.getError() で例外を取得
            throw result.getError()
        }
        // result.getResult() で成功結果を取得
    }
)

GS2-Deploy から利用できません

ルームを取得

パラメータ データ型 必須 説明
namespaceName string true ネームスペース名
roomName string true ルーム名
パラメータ データ型 説明
item Room ルーム

updateNamespace

同期処理

from gs2_realtime_client.request import UpdateNamespaceRequest
from gs2_realtime_client.result import UpdateNamespaceResult

result = client.update_namespace(
    UpdateNamespaceRequest()\
        .with_namespace_name('realtime-0001')\
        .with_description('description1')\
        .with_server_type('relay')\
        .with_server_spec('realtime1.nano')\
        .with_log_setting(Object("LogSetting", {"loggingNamespaceId": 'grn:gs2:ap-northeast-1:{ownerId}:log:namespace-0001'}))
)
# エラー発生時には例外が発生
# result が成功結果が格納
import io.gs2.realtime.request.UpdateNamespaceRequest
import io.gs2.realtime.result.UpdateNamespaceResult

result = client.updateNamespace(
    UpdateNamespaceRequest()
        .withNamespaceName("realtime-0001")
        .withDescription("description1")
        .withServerType("relay")
        .withServerSpec("realtime1.nano")
        .withLogSetting(Object("LogSetting", {"loggingNamespaceId": "grn:gs2:ap-northeast-1:{ownerId}:log:namespace-0001"}))
)
// エラー発生時には例外が発生
// result が成功結果が格納
同期APIは実装されていません

非同期処理

from gs2_realtime_client.request import UpdateNamespaceRequest
from gs2_realtime_client.result import UpdateNamespaceResult

def callback(async_result: AsyncResult[UpdateNamespaceResult]):
    if async_result.error:
        #  エラー発生時には async_result.error に例外が格納
        raise async_result.error
    # async_result.result が成功結果格納

result = client.update_namespace_async(
    UpdateNamespaceRequest()\
        .with_namespace_name('realtime-0001')\
        .with_description('description1')\
        .with_server_type('relay')\
        .with_server_spec('realtime1.nano')\
        .with_log_setting(Object("LogSetting", {"loggingNamespaceId": 'grn:gs2:ap-northeast-1:{ownerId}:log:namespace-0001'})),
    callback
)
import io.gs2.realtime.request.UpdateNamespaceRequest
import io.gs2.realtime.result.UpdateNamespaceResult

result = client.updateNamespace(
    UpdateNamespaceRequest()
        .withNamespaceName("realtime-0001")
        .withDescription("description1")
        .withServerType("relay")
        .withServerSpec("realtime1.nano")
        .withLogSetting(Object("LogSetting", {"loggingNamespaceId": "grn:gs2:ap-northeast-1:{ownerId}:log:namespace-0001"})),
    (result) => {
        if (result.getError() != null) {
            // エラー発生時には result.getError() で例外を取得
            throw result.getError()
        }
        // result.getResult() で成功結果を取得
    }
)

GS2-Deploy から利用できません

ネームスペースを更新

パラメータ データ型 必須 説明
namespaceName string true ネームスペース名
description string false ネームスペースの説明
serverType string true サーバの種類
serverSpec string true サーバのスペック
createNotification NotificationSetting false ルームの作成が終わったときのプッシュ通知
logSetting LogSetting false ログの出力設定
パラメータ データ型 説明
item Namespace 更新したネームスペース

wantRoom

同期処理

from gs2_realtime_client.request import WantRoomRequest
from gs2_realtime_client.result import WantRoomResult

result = client.want_room(
    WantRoomRequest()\
)
# エラー発生時には例外が発生
# result が成功結果が格納
import io.gs2.realtime.request.WantRoomRequest
import io.gs2.realtime.result.WantRoomResult

result = client.wantRoom(
    WantRoomRequest()
)
// エラー発生時には例外が発生
// result が成功結果が格納
同期APIは実装されていません

非同期処理

from gs2_realtime_client.request import WantRoomRequest
from gs2_realtime_client.result import WantRoomResult

def callback(async_result: AsyncResult[WantRoomResult]):
    if async_result.error:
        #  エラー発生時には async_result.error に例外が格納
        raise async_result.error
    # async_result.result が成功結果格納

result = client.want_room_async(
    WantRoomRequest()\
    callback
)
import io.gs2.realtime.request.WantRoomRequest
import io.gs2.realtime.result.WantRoomResult

result = client.wantRoom(
    WantRoomRequest(),
    (result) => {
        if (result.getError() != null) {
            // エラー発生時には result.getError() で例外を取得
            throw result.getError()
        }
        // result.getResult() で成功結果を取得
    }
)
Type: GS2::Realtime::Room
Properties:
  NamespaceName: String
  Name: String
  NotificationUserIds:
    - String
    - String

ルームの作成依頼。

パラメータ データ型 必須 説明
namespaceName string true ネームスペース名
name string true ルーム名
notificationUserIds list[string] false ルームの作成が終わったときに通知を受けるユーザIDリスト
パラメータ データ型 説明
item Room ルーム

GS2-Script トリガーイベント

GS2-Realtime が提供するスクリプトトリガーはありません

マスターデータフォーマット

マスターデータはありません

GS2-Realtime の制限・制約

利用いただくにあたって注意いただく制限・制約はありません