Home
概要
チュートリアル

リンク
Home > チュートリアル > イベントハンドラ簡易リファレンス

イベントハンドラ簡易リファレンス

GPSS Script Sockletでは、ユーザーからの様々なアクションをキャッチして処理を実行するために、いくつかの関数を定義します。この関数をイベントハンドラと呼びます。ここでは主なイベントハンドラの概要を紹介します。

ユーザーのアクションによって呼び出されるもの

ユーザーによるアクションによって呼び出されるイベントハンドラを紹介します。


・接続したとき onConnect(client)
ユーザーがサーバーに接続し、Script Sockletに接続するメッセージを送ると、サーバースクリプトのonConnect(client)イベントハンドラが呼び出されます。ユーザーが接続したときに、ユーザー毎に一度だけ呼び出されます。
このイベントハンドラは、接続ユーザーの認証や、ユーザーごとの初期設定を行うことに利用できます。

[引数] clientの利用してユーザー名・パスワードなどのユーザー固有情報にアクセスできます。
[戻り値] trueを返すことにより接続を許可します。何も返さない場合、あるいはtrue以外を返した場合は接続を切断します。
[既定動作] onConnectイベントハンドラを定義しない場合、すべてのユーザーの接続を許可します。また接続してきたユーザーに対して、"+OK"という接続許可を示すメッセージを送信します。


・メッセージを受け取ったとき onCommand(client, command)
ユーザーから送られたメッセージを、サーバーが受信すると、サーバースクリプトのonCommand(client, command)イベントハンドラが呼び出されます。ユーザーからメッセージを受け取るたびに何度でも呼び出されます。
このイベントハンドラは、ユーザーから受け取ったメッセージによって、なんらかの処理を行ったり、他のユーザーにメッセージを転送したりすることに利用できます。
ユーザーとのほとんどのやり取りは、このイベントハンドラを介して行われます。マルチユーザー処理の基本となるイベントハンドラと考えて良いでしょう。

[引数]
clientでユーザー固有情報にアクセスできます。commandはユーザーから送られたメッセージの文字列を保持しています。
[戻り値] trueを返すことにより接続を継続します。何も返さない場合、あるいはtrue以外を返した場合は接続を切断します。
[既定動作] onCommandイベントハンドラを定義しない場合、受け取ったメッセージを未加工ですべてのユーザーに転送します。


・切断するとき onDisconnect(client)
ユーザーが接続を切断した場合、あるいはサーバー側から切断を行う場合には、onDisconnect(client)イベントハンドラが呼び出されます。ユーザーが切断する際に一度だけ呼び出されます。
このイベントハンドラは、ユーザーの切断を他のユーザーに通知したり、ユーザーデータを保存したりすることに利用できます。

[引数]
clientでユーザー固有情報にアクセスできます。
[戻り値] 必要ありません。
[既定動作] onDisconnectイベントハンドラを定義しない場合、特に処理は行いません。


サーバーの動作によって呼び出されるもの

サーバーの動作に応じて呼び出されるイベントハンドラを紹介します。


・ScriptSockletが初期化されるとき onInit()
サーバー起動・再起動時、あるいはScriptSocklet再起動時の、サーバースクリプトが動作開始する前に、onInit()イベントハンドラが呼び出されます。サーバースクリプトが初期化される際に1度だけ呼び出されます。
このイベントハンドラは、サーバー全体で保持するデータの初期化などに利用できます。

[引数] ありません。
[戻り値] 必要ありません。
[既定動作] onInitイベントハンドラを定義しない場合、特に処理は行いません。


・ScriptSockletが終了・破棄されるとき onDestroy()
サーバーの終了・再起動時、あるいはScript Socklet再起動時に、サーバースクリプトが動作終了する前に、onDestroy()イベントハンドラが呼び出されます。サーバースクリプトが終了する際に1度だけ呼び出されます。
このイベントハンドラは、サーバーデータの保存などに利用できます。
このハンドラはサーバーが正常終了した場合にのみ機能します。

[引数]
ありません。
[戻り値] 必要ありません。
[既定動作] onDestroyイベントハンドラを定義しない場合、特に処理は行いません。


前へ|次へ

現在このサイトを 人の方がみています