C++ ときどき ごはん、わりとてぃーぶれいく☆

Wonder Rabbit Projectのなかのひとのブログ。主にC++。

UE4: UnrealWebServer Plugin が 1.4 にアップデート、機能追加& UE-4.18 対応

UE4 プロジェクトから簡単にウェブサーバーを建てるのに便利な UnrealWebServer プラグインがアップデートされました。今回の更新では開発元の IsaraTech. のなかの Thomas さんから「キミがリクエストしていた機能つけてアップデート公開したよ!」とお知らせを頂いたので、ドキュメントの更新が遅れているようで事実上現在はまだアンドキュメントだけど正式に最新版では使用可能になっている機能を簡単に紹介します。

f:id:USAGI-WRP:20171109082152p:plain

Note: 有償のプラグインのためソースコードレベルでの変更の解説やdiffの紹介は行いません。

  1. サーバーに登録するハンドラー毎に ExecuteInGameThread フラグによりイベントを処理するスレッドを設定できるようになった。
  2. Connection に RAW 系メソッドが追加された。
    1. GetData: 従来は GetGetVar, GetPostVar で key=value 群を前提としたリクエストボディーの取得しかできなかったが、新版では生のリクエストボディーを取得できるようになった。これにより、例えば POST で画像やzipなどの生のバイナリーを受け取ったり、テキストでも JSON を URL に対して直接投げて貰い受け取るなどの対応が可能になった。
    2. SendRawResponse / SendRawResponseByte: 従来は SendResponse で文字列のレスポンスボディー、コンテントタイプヘッダー、クッキー、ステータスを返す事しかできなかったが、新板では生のレスポンス(ボディーではなく全体)を開発者が完全に任意に生成して返せるようになった。これにより、独自のヘッダーを返したり、その他ごにょごにょできるようなった。

f:id:USAGI-WRP:20171109084658p:plain

次は「ハンドラーにワイルドカード正規表現を使えるようにして Connection からリクエストされたパスを取得できるようにしてくれ」と要望してみる事にします😃