Houdini 20.0 hwebserver

hwebserver.AsyncURLHandler class

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

On this page

ビルトインのハンドラー(例えば、@urlHandlerとか@apiFunction)よりも汎用URLハンドラーが必要な場合、このAsyncURLHandlerクラスを使用します。 汎用ハンドラーを使用すれば、Houdiniのすべてにアクセス可能でありながら他のRPC(例えば、JSON RPC)をそのハンドラー上に構築することができます。 このハンドラーはasyncioで使用できるようになっているため、Python3専用です。

Note

AsyncURLHandlerは、リクエストを処理する際に他のリソースを待機した後に応答する必要がある場合で最適です。 リクエストが何かしらの理由で待機する必要がない場合は、代わりにhwebserver.urlHandlerを使用することを推奨します。

サンプル

以下のサンプルでは、新しいリクエストが来た時に、指定した関数をコールするハンドラーの作り方を載せています。

class URLCallbackHandler(hwebserver.AsyncURLHandler):
    def __init__(self, path, function, is_prefix=False):
        URLHandler.__init__(self, path, methods=['GET','POST'], allows_partial=is_prefix)
        self._function = function

    async def handle(self, request):
        if self._function is None:
            request.send(hwebserver.errorResponse(request, "Handler doesnt have a function attached.", 500))
            return
        resp = await self._function(request)
        request.send(resp)

メソッド

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ハンドラー内でこの例外を引き起こしてエラーを示します。