(58)【調査した分野】(Int.Cl.,DB名)
ネットワークを介して、メッセージの送受信を行なうメッセージ処理部を備えたメッセージ通信システムを用いて、メッセージ送受信を支援するためのプログラムであって、
前記メッセージ処理部を、
クライアントにおいて選択されたウェブコンテンツの識別情報を取得し、
前記クライアントのチャット先クライアントを特定し、
前記チャット先クライアントのチャット画面において、前記ウェブコンテンツの識別情報を含めた前記ウェブコンテンツについてのメッセージを出力し、
前記ウェブコンテンツを管理するコンテンツサーバから、前記ウェブコンテンツにおける参加の可否に関する状態変化情報と前記ウェブコンテンツの識別情報とを取得した場合、前記チャット先クライアントのチャット画面に、前記ウェブコンテンツにおける参加の可否に関わる状態変化に関わるメッセージを表示する手段
として機能させることを特徴とするメッセージ通信プログラム。
【発明を実施するための形態】
【0014】
以下、メッセージ通信方法の一実施形態を
図1〜
図9に従って説明する。本実施形態は、複数のクライアント間でメッセージを送受信するチャットサービスにおいて、ウェブコンテンツ(対戦ゲーム)の共用を支援する場合を想定する。
【0015】
図1に示すように、本実施形態では、インターネット等のネットワークを介して接続された、チャットサーバ10、ユーザ端末20、ゲームサーバ30を用いる。
チャットサーバ10は、ユーザ端末20に対してチャットサービスの提供・管理を行なうコンピュータシステムである。このチャットサーバ10は、CPU、RAM及びROM等からなるチャット管理部11、ユーザ管理部12、メッセージ記憶部13、ゲーム管理部14を備える。
【0016】
チャット管理部11は、各ユーザ端末20からメッセージを取得し、メッセージ記憶部13に記録するとともに、チャットグループや連絡先に属する他のユーザ端末20に送信する処理を実行する。
【0017】
ユーザ管理部12は、チャットサービスのユーザやチャットグループの情報を管理する。
メッセージ記憶部13は、各ユーザ端末20から取得したメッセージを、送信者情報、チャットグループ情報に関連付けて記録する。
【0018】
ゲーム管理部14は、各クライアントに提供可能なゲーム情報を管理する。
また、チャットサーバ10は、チャットグループに属するユーザ端末20がオフラインとなっている場合には、このユーザ端末20に対してプッシュ通知を送信する。このプッシュ通知により、ユーザ端末20に対して、チャットアプリケーションの起動を促すことができる。
【0019】
ゲームサーバ30は、インターネットにおいて、各種ゲームを提供しているサーバコンピュータであり、ゲームアセットやロジックを管理するHTTPウェブサーバである。本実施形態では、ゲームサーバ30は、JavaScript(登録商標)を含めたHTMLにより、ゲームコンテンツを提供する。このゲームサーバ30では、ゲームコンテンツとして、複数のユーザにおいて行なわれる対戦ゲームを提供する場合を想定する。ゲームサーバ30は、ゲーム制御部31やセッション管理部32を備える。
【0020】
ゲーム制御部31は、ゲームの種類に応じて、ユーザ端末20に対して提供するゲームの管理処理を実行する。このゲーム制御部31は、ゲームセッションの状態変化時に、後述するゲームオプションに応じて、チャットサーバ10に状態変化通知を送信する。
【0021】
セッション管理部32は、ゲームの種類に応じてゲームセッションを管理する。本実施形態では、ゲームを特定するゲームIDに対して、ゲームの実施状況に応じた数のゲームセッションIDが関連付けられる。そして、各ゲームセッションIDには、そのゲーム状態を示すステートと、インバイトID(後述)が関連付けられる。なお、ゲームセッションの管理は、これらに限定されるものではなく、ゲームの実装に応じて決定することができる。
【0022】
また、本実施形態で提供されるゲームにおいては、ゲームに応じて各種ゲームオプションが設定される。本実施形態では、オプションとして、例えば、「ワンタイム」、「継続可能」、「有効期間」、「人数制限」、「結果通知」等がある。「ワンタイム」ゲームにおいては、1回限りでゲームセッションを終了する。「継続可能」ゲームにおいては、複数のゲームセッションにおいて、ゲームを継続することができる。「有効期間」ゲームにおいては、予め定められた所定期間のみ、ゲームを継続することができる。「人数制限」ゲームにおいては、予め定められた人数がゲームに参加し、満員になった場合に、新たな参加を拒否する。「結果通知」ゲームにおいては、各ユーザに対してゲームの結果を通知する。また、一部のオプションのみを用いる場合や、複数のオプションの組み合わせを用いる場合を設定することが可能である。
【0023】
ユーザ端末20は、チャットサービスの利用者のコンピュータ端末(スマートフォン等の情報処理端末)である。チャットサービスを最初に利用する場合には、ユーザ端末20を用いて、チャットサーバ10にアクセスして、チャットアプリケーションプログラムをダウンロードし、インストールする。
【0024】
このユーザ端末20は、CPU、RAM、ROM等からなる制御部や、データを記憶するメモリ、各種情報の入出力部を備えている。この制御部は、チャットアプリケーションプログラムを実行することにより、チャット部21として機能する。また、本実施形態では、入出力部としてタッチパネルディスプレイを用いる。
【0025】
チャット部21はメッセージ処理部として機能し、チャット画面部210、チャット先管理部220、メッセージ記憶部230、ゲーム管理部240、ウェブ画面部250を備える。
【0026】
チャット画面部210は、チャットサービスにおいて送信や受信したメッセージを、タッチパネルディスプレイに表示されたタイムライン画面に出力する。チャット画面部210は、送信処理部、受信処理部を備える。送信処理部は、タッチパネルディスプレイにおいて入力されたメッセージを、自分の発言として表示するとともに、メッセージをチャットサーバ10に送信する処理を実行する。受信処理部は、チャットサーバ10から取得したメッセージを、タッチパネルディスプレイにおいて、他者の発言として出力する処理を実行する。各ユーザ端末20とチャットサーバ10とは、チャットソケットにより接続される。このチャットソケットにおいては、情報の更新をリアルタイムに反映し共有するソケットが用いられる。
【0027】
チャット先管理部220は、ユーザ端末20の利用者が属するチャットグループや、ユーザ端末20において指定された連絡先に関する情報が記録される。このチャットグループの参加ユーザや連絡先ユーザとの間でメッセージを送受信することができる。
【0028】
メッセージ記憶部230には、チャットサービスを利用して送受信されたメッセージが記録される。
ゲーム管理部240は、このクライアントにおいて利用可能なゲーム情報を管理する。ゲーム管理部240は、ユーザの要求に応じて、チャットサーバ10のゲーム管理部14から、ゲーム情報をダウンロードする。各ゲーム情報には、このゲームを提供するゲームサーバ30の接続先及びゲームID(コンテンツ識別子)に関するデータが関連付けられている。そして、ゲーム管理部240は、タッチパネルディスプレイに、選択可能なゲームの一覧リストを示したゲーム選択画面を出力する。このゲーム選択画面において、ゲームが選択された場合、ウェブ画面部250を呼び出す。
【0029】
ウェブ画面部250は、後述するように、各種ゲームサーバ30から取得した画面データを、ウェブビュー251において表示する処理を実行する。本実施形態では、各ユーザ端末20とゲームサーバ30とは、ウェブソケットにより接続される。このウェブソケットにおいては、ネイティブ−JS(JavaScript(登録商標))ブリッジを介して、サーバとクライアントが一度コネクションを確立した後は、必要な通信を、このコネクション上で専用のプロトコルを用いて行なう。
【0030】
(ウェブ画面における処理)
次に、
図2を用いて、ウェブ画面における処理を説明する。ウェブ画面部250のウェブビュー251は、ネイティブブリッジ252、ネイティブUI(ユーザインターフェイス)を備え、ゲームサーバ30から取得したゲーム画面を、タッチパネルディスプレイにおいて画面表示254を出力する。ネイティブUI253においては、ビュー制御やチャット画面連結を行なう。
【0031】
ネイティブブリッジ252は、チャット画面上のゲームリンクによるゲームサーバ30との接続や、コネクションハンドリングを行なう。このコネクションハンドリングにより、ウェブビュー251から提供されるコンテンツ(例えば、対戦ゲーム)は、チャット先
のセッション情報やセッション開始イベントを取得し、ソケット通信開始のハンドリングが可能となる。このため、コネクションハンドリングにおいては、例えば、以下のインスタンスから、各種イベントリスニングやメッセージのブロードキャスト等を実現する。
【0032】
New connection()
connection.open
connection.onclose
connection.send
connection.onmessage
なお、このコネクションハンドリングは例示であり、これらに限定されるものではない。
【0033】
(チャットサーバにおける処理の概要)
次に、
図3を用いて、チャットサーバ10における処理の概要を説明する。ここでは、クライアントA,B,Cが同じチャットグループに属する場合を想定する。
【0034】
まず、チャットサーバ10のチャット管理部11は、チャット管理処理を実行する(ステップS1−1)。具体的には、チャット管理部11は、チャットサーバ10に接続されたユーザ端末20(例えば、クライアントA、B)におけるメッセージ交換を管理する。ここで、各クライアントのユーザ端末20のタッチパネルディスプレイには、タイムライン画面が表示される。このタイムライン画面では、ユーザが送信したメッセージや、相手ユーザから取得したメッセージが時系列に表示される。本実施形態では、タイムライン画面においては、他者のメッセージは左寄り、自分のメッセージは右寄りに表示される。
【0035】
次に、チャットサーバ10のチャット管理部11は、ゲーム選択処理を実行する(ステップS1−2)。具体的には、ゲームを行なう場合、ユーザ端末20(例えば、クライアントA)において、所望のゲームを選択する。この場合、チャット管理部11は、クライアントAにおいて、選択されたゲーム情報(ウェブコンテンツの識別情報)を取得する。
【0036】
次に、チャットサーバ10のチャット管理部11は、ゲームリンク処理を実行する(ステップS1−3)。具体的には、チャット管理部11は、チャットグループにおいて、チャット相手に対して、ゲームリンクを含めたメッセージを送信する。例えば、クライアントAにおいてゲームが選択された場合、クライアントBに、選択されたゲームについてのメッセージ(ゲームリンク)を出力する。
【0037】
また、オフラインのクライアントに対しては、チャットサーバ10のチャット管理部11は、プッシュ通知処理を実行する(ステップS1−4)。具体的には、チャット管理部11は、チャットグループにおいて、オフラインのクライアントを検知した場合には、このクライアントに対して、ゲームリンクの要求があることを示すプッシュ通知を行なう。例えば、クライアントCがオフラインの場合には、このクライアントCに対して、プッシュ通知を送信する。この場合には、クライアントCのユーザ端末20のタッチパネルディスプレイに、チャットサービス上のメッセージがあることを示すアラームを出力する。
【0038】
いずれか複数のクライアント(B,C)においてゲームリンクが選択された場合、クライアントはゲームサーバ30にアクセスする。そして、ゲームサーバ30は、ゲームを開始し、ゲームセッションを管理する(ステップS1−5)。ゲームセッションにおいて状態変化を検知した場合、ゲームサーバ30は、チャットサーバ10に対して、状態変化通知を送信する。状態変化としては、例えば、ゲームの途中経過、人数制限に到達した場合(満員)やゲームの終了等がある。
【0039】
この場合、チャットサーバ10のチャット管理部11は、状態変化通知の取得処理を実行する(ステップS1−6)。具体的には、チャット管理部11は、ゲームサーバ30から状態変化通知を取得する。この状態変化通知には、ゲームオプションに関する情報が含まれる。
【0040】
次に、チャットサーバ10のチャット管理部11は、ゲームオプションに応じたメッセージ対応処理を実行する(ステップS1−7)。具体的には、チャット管理部11は、状態変化通知のオプションに基づいて、メッセージの表示形式を決定する。
【0041】
次に、チャットサーバ10のチャット管理部11は、ゲームメッセージの表示変更処理を実行する(ステップS1−8)。具体的には、チャット管理部11は、決定した表示形式に基づいて、チャットグループのタイムライン画面にメッセージを出力する。
【0042】
(ゲームオプション)
次に、
図4を用いてゲームオプションを説明する。
(a)ゲームオプションが「ワンタイム」のゲームにおいては、ゲームサーバ30は、1つのセッションにおいてゲーム終了を検知した場合、チャットサーバ10に対して、状態変化通知(ゲーム終了)の通知処理を実行する(ステップSE10)。この場合、チャットサーバ10のチャット管理部11は、クライアントのタイムライン画面においてゲームリンクをグレイアウトする。
【0043】
(b)ゲームオプションが「継続可能」のゲームにおいては、ゲームの最終決着(勝敗)が決まっていない場合には、ゲームサーバ30は、1回のセッションを終了した場合にも、ゲームを継続する(ステップSE20)。
【0044】
そして、ゲームサーバ30は、ゲームが最終決着した場合に、チャットサーバ10に対して、状態変化通知(ゲーム終了)の通知処理を実行する(ステップSE21)。この場合、チャットサーバ10のチャット管理部11は、クライアントのタイムライン画面においてゲームリンクをグレイアウトする。
【0045】
(c)ゲームオプションが「有効期間」のゲームにおいては、ゲームサーバ30は、セッション開始時刻からの経過時間を算出する。そして、ゲームサーバ30は、チャットサーバ10に対して、状態変化として有効期間の満了が近いことを示す通知処理を実行する(ステップSE30)。この場合、チャットサーバ10のチャット管理部11は、クライアントのタイムライン画面において、有効期間の満了が近いことを示すメッセージを出力する。
【0046】
そして、ゲームサーバ30は、セッション開始時刻からの経過時間に基づいて、有効期間の満了を検知した場合、チャットサーバ10に対して、状態変化通知(ゲーム終了)の通知処理を実行する(ステップSE31)。この場合、チャットサーバ10のチャット管理部11は、クライアントのタイムライン画面においてゲームリンクをグレイアウトする。
【0047】
(d)ゲームオプションが「人数制限」のゲームの場合、ゲームサーバ30は、参加人数カウント処理を実行する(ステップSE40)。ゲームサーバ30は、セッション管理部32に記録されたセッション管理レコードにおいて、ユーザIDを計数することにより、参加人数を算出する。
【0048】
そして、ゲームサーバ30は、参加人数が制限人数に達した場合(満員の場合)、チャットサーバ10に対して、状態変化通知(満員)の通知処理を実行する(ステップSE4
1)。この場合、チャットサーバ10のチャット管理部11は、クライアントのタイムライン画面においてゲームリンクをグレイアウトする。
【0049】
(e)ゲームオプションが「結果通知」のゲームにおいて、ゲーム終了を検知した場合、ゲームサーバ30は、チャットサーバ10に対して、状態変化通知(ゲーム終了)の通知処理を実行する(ステップSE50)。このゲーム終了の通知には、勝者や敗者のユーザIDに関するデータを含める。この場合、チャットサーバ10のチャット管理部11は、クライアントのタイムライン画面において、結果を表示するとともに、ゲームリンクをグレイアウトする。
【0050】
(シーケンス及び通信に用いられるデータ)
次に、
図5、
図6を用いて、ゲームを行なう場合のシーケンス及び通信に用いられるデータを説明する。また、
図7〜
図9を用いて、ユーザ端末20のタッチパネルディスプレイに表示される画面を説明する。
【0051】
まず、チャットサービスを利用する場合、クライアントAのユーザ端末20においてチャットアプリケーションを起動する。
この場合、
図5に示すように、クライアントAのユーザ端末20は、チャットサーバ10との間でコネクション確立処理を行なう(ステップS101)。このコネクション確立処理は、公知のハンドシェイクにより行なわれる。
【0052】
そして、クライアントAのユーザ端末20は、データ転送処理を実行する(ステップS102)。ここでは、チャットサービスを利用するために必要な情報(ペイロード)を送受信する。
【0053】
この場合、
図7に示すように、ユーザ端末20のタッチパネルディスプレイに、タイムライン画面510が表示される。
また、クライアントBのユーザ端末20においてチャットサービスを利用する場合にも、クライアントAの場合と同様に、コネクション確立処理(ステップS301)、データ転送処理(ステップS302)を実行する。
【0054】
次に、クライアントAにおいて、チャットグループでのゲームを希望する場合、ゲーム選択を行なう。具体的には、ユーザ端末20のチャット画面において、ゲームの選択画面の出力を指示する。
【0055】
この場合、
図7に示すように、クライアントAのユーザ端末20のタッチパネルディスプレイに、タイムライン画面511とともに、ゲーム選択画面520が表示される。
そして、ゲーム選択画面520において、ゲームが選択された場合、クライアントAのユーザ端末20は、ウェブビューを起動する(ステップS103)。具体的には、チャット部21のウェブ画面部250は、タッチパネルディスプレイに、ゲーム画面を出力する。このゲーム画面には、ウェブビューが含まれる。なお、チャット画面部210は、
図7に示すタイムライン画面530において、ゲームメッセージ531を出力する。
【0056】
ウェブビューを起動したクライアントAのユーザ端末20は、ゲームサーバ30との間で、コネクション確立処理を行なう(ステップS104)。この場合、ウェブ画面部250は、インバイトIDを生成する。このインバイトIDとしては、チャットサーバ10が、チャット先を把握できる識別子を用いる。例えば、インバイトIDを以下のように構成することができる。
〔インバイトID〕=〔ゲームID〕×〔チャットグループID〕
【0057】
また、オプションとして、インバイトIDに、招待者のユーザIDを付加するようにしてもよい。なお、このインバイトIDは、チャットサーバ10において生成し、クライアントAのユーザ端末20に提供するようにしてもよい。そして、ユーザ端末20は、ハンドシェイク信号において、選択されたゲームのゲームID、インバイトID、ユーザID(A)を、ゲームサーバ30に送信する。
【0058】
この場合、ゲームサーバ30のゲーム制御部31は、ユーザ端末20から取得したインバイトIDがセッション管理部32に記録されているかどうかを確認する。
ここで、セッション管理部32に、ユーザ端末20から取得したインバイトIDが登録されておらず、初めてインバイトIDを取得した場合には、ゲーム制御部31は、ゲームセッションIDを付与したゲームセッションを生成する(S501)。本実施形態では、ゲーム制御部31は、セッション管理部32に、ゲームセッションIDとゲームIDとを関連付けて登録する。更に、ゲーム制御部31は、ゲームセッションIDに対して、クライアントAから取得したインバイトIDと、ステート(ゲーム状態)とを関連付けたセッション管理レコードを記録する。そして、ゲーム制御部31は、クライアントAのユーザ端末20に対して、ゲームセッションIDを返す。更に、ゲーム制御部31は、このゲームセッションIDに対して、ユーザID(ここでは、クライアントAのユーザID)を関連付けて記録する。
【0059】
クライアントAのユーザ端末20は、ゲームサーバ30との間でデータ転送処理を行なう(ステップS105)。ここでは、ゲームを利用するために必要な情報(ペイロード)を送受信する。
【0060】
この場合、
図7に示すように、ウェブ画面部250は、ゲーム画面550を出力する。このゲーム画面550にはウェブビュー551が含まれる。このウェブビュー551においては、上述したブリッジ処理により、ゲームサーバ30との接続が確立され、結果としてゲームロジックが展開・スタートする。
【0061】
これにより、ゲームサーバ30は、セッションを開始する(ステップS502)。この場合、ゲームサーバ30のゲーム制御部31は、ゲームセッションの管理を行なう。このゲームIDに応じて、ゲームオプションを特定することができる。例えば、このセッション管理レコードのステートとしては、ゲームの状態(対戦の待機)を記録する。
【0062】
また、クライアントAのゲーム選択画面520においてゲームが選択された場合、ユーザ端末20は、ゲームリンク処理を行なう(ステップS106)。この場合、チャットサーバ10のチャット管理部11は、ゲームメッセージをチャットサーバ10に送信する。このゲームメッセージには、接続先情報、ゲームID(ウェブコンテンツの識別情報)、インバイトIDに関するデータを含める。この接続先情報には、選択されたゲームのゲームサーバ30を特定するための情報を含める。ゲームサーバ30を特定するための情報としては、例えば、URL、IPアドレス、ポート情報、ホスト名等を用いることができる。
【0063】
クライアントAからゲームメッセージを取得したチャットサーバ10は、ゲームリンク処理を実行する(ステップS201)。具体的には、チャットサーバ10のチャット管理部11は、ユーザ管理部12を用いて、クライアントAのチャット先を特定する。この場合、チャットサーバ10は、チャットグループとインバイトIDとを関連づけて記憶する。そして、オンラインのチャット先クライアント(ここでは、クライアントB)に対して、ゲームメッセージを送信する。このゲームメッセージには、接続先情報、ゲームID、インバイトIDに関するデータを含める。
【0064】
そして、クライアントBのユーザ端末20は、タッチパネルディスプレイに表示されたタイムライン画面に、ゲームメッセージを出力する(ステップS303)。
この場合、
図7に示すように、チャット画面部210は、タッチパネルディスプレイに、タイムライン画面540を出力する。このタイムライン画面540には、ゲームメッセージ541が含まれる。
【0065】
また、チャットサーバ10は、オフラインのチャット先クライアントを検知した場合、プッシュ通知処理を実行する(ステップS202)。具体的には、チャットサーバ10のチャット管理部11は、オフラインのユーザ端末20に対して、チャットグループの他のクライアントAから、ゲームメッセージが来ていることを通知する。この場合、クライアントCのユーザ端末20は、タッチパネルディスプレイに、チャット上のメッセージがあることを示すアラームを出力する。
【0066】
そして、クライアントCのユーザ端末20において、チャットアプリケーションを起動する(ステップS401)。
この場合、クライアントCのユーザ端末20は、チャットサーバ10との間で、コネクション確立処理(ステップS402)を実行する。
【0067】
そして、チャットサーバ10は、ゲームリンク処理を実行する(ステップS203)。
この場合、クライアントCのユーザ端末20は、タッチパネルディスプレイに表示されたタイムライン画面において、ゲームメッセージを出力する(ステップS403)。
【0068】
次に、
図6を用いて、対戦ゲームを行なう場合を説明する。
クライアントBにおいてゲーム対戦を希望する場合、ユーザ端末20は、オープン処理を実行する(ステップS311)。この処理は、タッチパネルディスプレイに表示されたタイムライン画面において、
図7に示すゲームメッセージ541を選択することにより行なわれる。
【0069】
この場合、クライアントBのユーザ端末20は、ウェブビュー処理を実行する(ステップS312)。具体的には、チャット部21のウェブ画面部250は、タッチパネルディスプレイに、ゲーム画面を出力する。このゲーム画面にウェブビューが含まれる。この場合、ウェブ画面部250は、ゲームメッセージに含まれる接続先情報を用いて、ゲームサーバ30にアクセスする。
【0070】
そして、クライアントBのユーザ端末20は、ゲームサーバ30との間で、コネクション確立処理を実行する(ステップS313)。このハンドシェイク信号においては、クライアントBは、チャットサーバ10から取得したゲームID、インバイトIDを送信する。更に、クライアントBは、ゲームサーバ30に対してユーザID(B)に関するデータを送信する。
【0071】
そして、クライアントBのユーザ端末20は、ゲームサーバ30との間で、データ転送処理を実行する(ステップS314)。ここでは、ゲームを利用するために必要な情報(ペイロード)を送受信する。
【0072】
この場合、ゲームサーバ30は、ゲームセッション管理処理を行なう(ステップS511)。ここでも、ゲームサーバ30のゲーム制御部31は、ユーザ端末20から取得したインバイトIDがセッション管理部32に記録されているかどうかを確認する。この場合、セッション管理部32において、ユーザ端末20から取得したインバイトIDが登録されており、既にゲームセッションが維持されている場合には、ゲーム制御部31は、セッション管理部32において、ゲームセッションIDに対して、ユーザIDとして「B」を
追加する。そして、ゲーム制御部31は、新たに参加したクライアントBのユーザ端末20に対して、インバイトIDに関連付けられたゲームセッションIDを返す。これにより、ゲームサーバ30は、クライアントAとクライアントBとのゲームを開始するとともに、例えば、セッション管理レコードのステートとして、対戦開始を記録する。
この場合、
図8に示すように、ゲームサーバ30は、クライアントA,Bのウェブ画面部250においてゲーム画面610を出力する。
【0073】
ゲームサーバ30が、ゲーム途中で状態変化を検知する(ステップS512)。この場合、ゲーム制御部31は、セッション管理部32のセッション管理レコードにおいて、状態変化に応じてステートを更新する。そして、ゲーム制御部31は、このゲームのゲームオプションに応じて状態変化通知の要否を判断する。
【0074】
ゲームオプションに応じて状態変化通知が必要な場合、ゲームサーバ30は、チャットサーバ10に対して、ゲームの状態変化の通知処理を実行する(ステップS513)。この状態変化通知には、インバイトID、オプション(ゲームオプション)に関するデータを含める。
【0075】
次に、チャットサーバ10は、ゲーム状態管理処理を実行する(ステップS211)。具体的には、チャットサーバ10のチャット管理部11は、状態変化通知のオプションに応じて、メッセージの表示形態を特定する。次に、チャット管理部11は、インバイトIDに基づいてチャットグループを特定する。そして、チャット管理部11は、各クライアントに対して状態変化通知を送信する。この状態変化通知には、インバイトID、オプションに関するデータを含める。
【0076】
各クライアント(A〜C)のユーザ端末20は、状態変化に応じたメッセージを出力する。
そして、クライアントA,Bのウェブ画面部250において対戦を行ない、最終的にゲームを終了する。
【0077】
そして、ゲームサーバ30は、対戦の終了を検知した場合、セッション終了処理を実行する(ステップS514)。この場合、ゲーム制御部31は、セッション管理部32のセッション管理レコードにおいて、ステートとしてゲーム終了を記録する。
【0078】
次に、ゲームサーバ30は、チャットサーバ10に対して、ゲーム終了の通知処理を実行する(ステップS515)。この状態変化通知(ゲーム終了)には、インバイトID、オプション(ゲームオプション)に関するデータを含める。
【0079】
次に、チャットサーバ10は、ゲーム終了管理処理を実行する(ステップS212)。具体的には、チャットサーバ10のチャット管理部11は、ゲームオプションに応じて、後述するようにメッセージの表示形態を特定する。次に、チャット管理部11は、インバイトIDに基づいてチャットグループを特定する。そして、チャット管理部11は、各クライアントに対して終了通知を送信する。この終了通知には、インバイトID、オプションに関するデータを含める。
【0080】
各クライアント(A〜C)のユーザ端末20は、ゲーム終了処理を実行する(ステップS111、S315、S411)。具体的には、チャット部21のチャット画面部210は、オプションに応じて、メッセージの表示を維持又は変更する。
【0081】
ここで、終了通知において、結果表示のオプションが含まれる場合には、各クライアントにおいて、チャット部21のチャット画面部210は、終了通知の勝敗に基づいたメッ
セージを出力する。
【0082】
ここでは、
図8に示すように、クライアントAのウェブ画面部250はタイムライン画面620を出力し、クライアントAのウェブ画面部250はタイムライン画面630を出力する。このタイムライン画面620,630においては、ゲームメッセージはグレイアウトして、選択できなくなる。
【0083】
また、
図9に示すように、「継続可能」、「有効期間」のオプションの場合には、ゲームサーバ30は、クライアントA,Bのウェブ画面部250においてゲーム画面710を出力する。そして、各クライアントA,B,Cにおいて、チャット部21のチャット画面部210は、ゲーム継続中のメッセージを含めたタイムライン画面720,730を出力する。このタイムライン画面720,730においては、ゲームメッセージはグレイアウトせず、後で選択可能である。
【0084】
そして、ゲームサーバ30から「有効期間」が近づいたことを示す状態変化通知を取得した場合、チャットサーバ10のチャット管理部11は、期間満了が近いことを示すメッセージを含めたタイムライン画面740を出力する。
【0085】
上記実施形態によれば、以下のような効果を得ることができる。
(1)上記実施形態では、チャット部21のウェブ画面部250は、ゲームサーバ30から取得した画面データのウェブページをウェブビューに出力する。これにより、ネイティブコードにより作成されたチャットアプリケーションにおいて、ウェブコンテンツを活用することができる。そして、チャットアプリケーションのバイナリサイズの増加を抑制することができる。また、ゲームアセットもコンテンツサーバに設置することができる。更に、共用するコンテンツを外部から取り込むため、共用コンテンツの内容を更新したり、新しいステージを配信したり、ゲームの種類自体を増加させたりする場合にも、チャットアプリケーション自体を更新する負担がない。更に、開発速度が速いウェブベースのゲーム資産を活用し、スピード感をもって最新のゲームをエンドユーザに提供することができる。
【0086】
(2)上記実施形態では、クライアントAにおいてゲームが指定された場合、クライアントAのユーザ端末20は、ゲームサーバ30に、選択されたゲームのゲームID、インバイトIDを含むデータを、ゲームサーバ30に送信する。また、クライアントBが対戦を希望する場合、クライアントBのユーザ端末20は、チャットサーバ10を介して、クライアントAから取得したインバイトIDを含むデータを、ゲームサーバ30に送信する。これにより、対戦相手(ウェブコンテンツの共用先)は既にチャット上で通信を行なっている関係性があるため、この関係性を利用して、ゲームサーバ30において対戦相手を効率的に指定することができる。従って、ゲームサーバ30において、ユーザ認証システムやユーザを招待する仕組みを実装することなく、ユーザを簡単に呼び寄せることができる。
【0087】
(3)上記実施形態では、チャットサーバ10のチャット管理部11は、ゲームメッセージをチャットサーバ10に送信する。このゲームメッセージには、接続先情報、ゲームID、インバイトIDに関するデータを含める。これにより、チャット相手のクライアントは、ゲームサーバ30に効率的にアクセスすることができる。
【0088】
(4)上記実施形態では、チャットサーバ10は、チャットグループに属するユーザ端末20がオフラインとなっている場合には、このユーザ端末20に対してプッシュ通知を送信する。これにより、チャットアプリケーションを介して、相手を呼び出し、通信対戦に簡単に呼び出すことができる。
【0089】
(5)上記実施形態では、ゲームサーバ30とのコネクションには、ウェブソケットを用いる。これにより、新たなコネクションを張ることなく、効率的に通信を行なうことができる。
【0090】
(6)上記実施形態では、状態変化通知には、ゲームオプションに関する情報が含まれる。そして、チャットサーバ10のチャット管理部11は、ゲームオプションに応じたメッセージ対応処理を実行する(ステップS1−7)。これにより、ゲーム状況や結果をチャットに反映させることができる。
【0091】
なお、上記実施形態は以下のように変更してもよい。
・上記実施形態では、共用コンテンツとして、ゲームサーバ30から提供される対戦ゲームに適用した。共用コンテンツは、ゲームに限定されるものではない。チャット上の関係性に基づいて、他のコンテンツサーバにおいて、コンテンツを共用できるサービスに利用することができる。
【0092】
また、ゲームサーバ30におけるセッション管理は、上記実施形態に限定されるものではなく、チャットサーバ10において把握可能なインバイトIDを用いて、コンテンツの共用相手や、共用に利用されたチャット(チャットの分脈)を特定したゲームセッションが作成できればよい。
【0093】
・上記実施形態では、ゲームオプションとして、「ワンタイム」、「継続可能」、「有効期間」、「人数制限」、「結果通知」を用いた。チャットに反映できるものであれば、ゲームオプションはこれに限定されるものではない。例えば、利用回数を制限するゲームオプション等を設定することも可能である。この場合には、ゲームサーバ30において、同じインバイトIDについての利用回数をカウントする。そして、利用回数が制限回数に達した場合に、ゲームサーバ30は、チャットサーバ10に対して、状態変化通知(ゲーム終了)を送信する。
【0094】
・上記実施形態では、インバイトIDを、ゲームID、チャットグループIDを用いて構成するが、インバイトIDの構成方法は、これに限定されるものでなく、チャットにおけるユーザの関連性を特定できる情報を用いることができる。例えば、インバイトIDとして、チャットサーバ10との通信に用いられているセッションIDに基づく情報を使用することも可能である。このセッションIDに基づいてチャット先を特定することができる。
【0095】
・上記実施形態では、インバイトIDを、ゲームID、チャットグループIDを用いて構成するが、インバイトIDの構成方法は、これに限定されるものでない。例えば、招待時を特定できる情報(例えば、招待時刻)等を含めることにより、同じゲームを、同じチャットグループで、異なるゲームセッションで行なうことができる。
【0096】
次に、上記実施形態及び別例から把握できる技術的思想について、それらの効果とともに以下に追記する。
(a)ネットワークを介して、メッセージの送受信を行なうメッセージ処理部を備えたメッセージ通信システムを用いて、メッセージ送受信を支援するための方法であって、
前記メッセージ処理部が、
クライアントのチャット画面とともに表示されたコンテンツ選択画面において選択されたウェブコンテンツの識別情報、及び前記クライアントのチャット先のチャットグループを特定する識別子を含めたインバイト情報を取得し、
前記クライアントのチャット先クライアントを特定し、
前記チャット先クライアントのチャット画面において、前記ウェブコンテンツの識別情報を含めたメッセージを出力するとともに、前記ウェブコンテンツを管理するコンテンツサーバへのアクセス時に用いるインバイト情報を前記チャット先クライアントに提供することを特徴とするメッセージ通信方法。
従って、この(a)に記載の発明によれば、チャット上のユーザ関連性に基づいて、ウェブコンテンツを共用することができる。
【0097】
(b)前記インバイト情報には、前記クライアントとの接続に用いたセッション識別子を用いることを特徴とする前記(a)又は請求項1に記載のメッセージ通信方法。
従って、この(b)に記載の発明によれば、チャット上でのセッション識別子を用いて、チャット上のユーザ関連性を判定することができる。
【0098】
(c)前記インバイト情報には、前記コンテンツサーバのアドレス情報及びコンテンツ識別子を含めることを特徴とする前記(a)、(b)及び請求項1の何れか1つに記載のメッセージ通信方法。
従って、この(c)に記載の発明によれば、チャット先クライアントは、コンテンツサーバの所在を特定してアクセスするとともに、コンテンツサーバにおいて提供されるコンテンツを特定することができる。
【0099】
(d)前記コンテンツサーバから前記クライアントにおけるセッションの状態変化情報を取得した場合、各クライアントのチャット画面に出力された前記ウェブコンテンツに関わるメッセージの表示を変更することを特徴とする前記(a)〜(c)及び請求項1のいずれか一つに記載のメッセージ通信方法。
従って、この(d)に記載の発明によれば、ウェブコンテンツについてのメッセージの表示を用いて、ウェブコンテンツの共用状況を、チャット上において把握することができる。
【0100】
(e)前記コンテンツサーバからセッション状態を取得し、前記チャット画面に前記セッション状態を出力することを特徴とする前記(a)〜(d)及び請求項1のいずれか一つに記載のメッセージ通信方法。
従って、この(e)に記載の発明によれば、チャット先クライアントとのウェブコンテンツの共用状態(途中状態や結果等)を、チャット上において把握することができる。
【0101】
(f)前記チャット先クライアントがオフラインの場合には、前記ウェブコンテンツについてのプッシュ通知を行なうことを特徴とする前記(a)〜(e)及び請求項1のいずれか一つに記載のメッセージ通信方法。
従って、この(f)に記載の発明によれば、オフラインのクライアントに対して、チャットを介して、ウェブコンテンツの共用を促すことができる。