Houdini 20.0 hwebserver

hwebserver.run function

Houdiniのウェブサーバーを開始します。

run(port=8008, debug=False, max_num_threads=4, in_background=None, reload_source_changes=None, max_in_memory_file_upload_size=None, max_request_size=None, settings=None, ports=[])

port

リッスンするポート番号。 このポートが既に使用中、または、プロセスがそのポート番号のリッスンの許可がされていない場合、この関数はhwebserver.OperationFailedを引き起こします。

debug

これがTrueの場合、サーバーはコンソールログメッセージを書き出し、リクエストを処理した時に発生したPython例外のスタックトレースを表示します。 また、レスポンスボディにもスタックトレースを返します。

hythonからサーバーを起動した場合、これはさらにreload_source_changesTrueに設定します。

hwebserver.isInDebugModeを使用すれば、サーバーがデバッグモードで起動しているかどうかをチェックすることができます。

max_num_threads

同時リクエストを処理するために作成される並列ワーカースレッドの最大数。

hwebserverパッケージ内のどのコールもグローバルロックを確保し、Pythonハンドラー関数は必ずGIL(Global Interpreter Lock:グローバルインタプリタロック)を確保しなければならないので、 通常ではハンドラーは並列で実行することはできません。 マルチスレッド化で速度の恩恵が得られるのは、主に静的ファイルを提供したり、Houdiniを必要としないPythonからのI/O操作のブロッキングをする時です。

in_background

この関数が別のスレッドでサーバーを起動するかどうか。 in_background=Falseを渡すと、サーバーを中断しない限り、または、サーバーコードがhwebserver.requestShutdownをコールしない限り、決して戻りません。

in_backgroundがNone(デフォルト値)の場合、グラフィカルHoudiniセッションではTrue、それ以外はFalseに設定されます。

reload_source_changes

これがTrueの場合、サーバーは、読み込まれているすべてのPythonソースファイルを監視して、それらのどれかに変更がある度にサーバーを再起動します。 これによって、サーバーを手動で停止して再起動する必要なくPythonコードを編集してその結果を確認することができます。

max_in_memory_file_upload_size

一時ファイルへ書き出さずにメモリに保持されるアップロードファイルの最大サイズ(単位はバイト)。 デフォルトでは、サーバーは2.5MB未満のアップロードファイルをメモリに保持し、それより大きいファイルはディスクに書き出します。 ここ引数は、その閾値を上書きすることができます。

max_request_size

HTTPリクエストの最大サイズ(単位はバイト)。 これがNoneの場合、デフォルト値は3GBです。

settings

ウェブサーバーに追加設定する設定ファイルを指定します。 現在のところ、ここにはCORSホワイトリストしか指定できません。 これは、Django設定ファイルと同様に動作します。

ports

サーバーがリッスンする追加ポート。

verbosity

サーバーがログに出す詳細度。デフォルト設定はlowです。

port_callback

プログラムがサーバーで起動されている実際のポート番号を知る必要がある場合、ポートコールバックを使用することで、実際のポート番号を取得することができます。 このコールバックは初期化ステージのどの段階でコールされるのか保証がないので、このコールバックを初期化関数として使用することは推奨しません。

up_to_port

portパラメータのポート番号がリッスンに失敗したら、このパラメータのポート番号までのすべてのポートを試みます。 例えば、ポート番号が80で、このパラメータが90とすると、81から90までのすべてのポートが試されて、それで失敗したら諦めます。 この範囲でリッスン可能な最初のポートがサーバーのメインポートとして使用されます。

use_free_port_on_failure

ポート範囲と初期ポートのどちらも空きポートの検索に失敗した場合、OS側で空きポートを拾わせます。 サーバーが実際のポート番号をあまり気にせず、ただ空きポートさえ見つかれば良いのであれば、ポート範囲の代わりにこのパラメータを使用すると良いでしょう。

See also

hwebserver

クラス

  • hwebserver.Request

    Houdiniのウェブサーバーに送信されるリクエスト。

  • hwebserver.Response

    Houdiniのウェブサーバーから送り返されるレスポンス。

  • hwebserver.UploadedFile

    Houdiniのウェブサーバーに送信されるリクエストにアップロードされたファイル。

  • URLHandler

    汎用のHTTPハンドラー。

  • AsyncURLHandler

    汎用の非同期HTTPハンドラー。

  • WebSocket

    組み込みサーバーをWebSocketに対応させるための基底クラス。

開始と停止

  • hwebserver.run

    Houdiniのウェブサーバーを開始します。

  • hwebserver.requestShutdown

    すべてのオープンリクエストが処理された後にシャットダウンするようにHoudiniのウェブサーバーに命令します。

  • hwebserver.isInDebugMode

    Houdiniのウェブサーバーがデバッグモード(でdebug=True)で起動されていればTrueを返します。

ウェブリクエストの処理とレスポンスの返し

ウェブソケット

  • WebSocket

    組み込みサーバーをWebSocketに対応させるための基底クラス。

  • hwebserver.webSocket

    HoudiniのウェブサーバーにWebSocketクラスを登録するデコレータ。

APIコール

  • hwebserver.apiFunction

    Houdiniウェブサーバー上のAPIエンドポイント経由で関数をコールを可能にするデコレータで、JSON形式またはバイナリ形式のレスポンスを返します。

  • hwebserver.APIError

    apiFunctionハンドラー内でこの例外を引き起こしてエラーを示します。