0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SOCKET-MANAGERを使った自作サーバー開発の手引き<フレームワークの特徴>

Posted at

はじめに

サーバーアプリを開発するツールと言えば一般にライブラリ形式で提供されているものが多い印象ですが、このフレームワークでは頻繁に書くような慣習的なコーディング部分をコマンド操作で概ね補えるようになっています。

以下のようにフレームワークコマンドのUsageを表示すると、サーバーの実装に必要なコマンド群が表示されます。

Usageの表示
> php worker
SOCKET-MANAGER Framework 1.0.0

Usage:
  command [arguments]

 main
  Empty...
 craft
  craft:init <初期化クラス名>                     初期化クラスの生成
  craft:parameter <UNITパラメータクラス名>        UNITパラメータクラスの生成
  craft:protocol <プロトコルUNIT定義のクラス名>   プロトコルUNIT定義のクラスとステータス名Enumの生成
  craft:command <コマンドUNIT定義のクラス名>      コマンドUNIT定義のクラスとキュー/ステータス名Enumの生成
  craft:main <メイン処理のクラス名>               メイン処理クラスの生成
  craft:setting <設定ファイル名>                  設定ファイルの生成
  craft:locale <メッセージファイル名>             メッセージファイルの生成

コマンドによる実装とサーバー起動

例えば、メイン処理を作成してインスタンス化し、サーバーを起動するまでの手順は以下2ステップのコマンドで完結します。

①メイン処理の作成

php worker craft:main <メイン処理クラス名>というコマンドを使ってメイン処理クラスのひな形を作成します。
今回の場合はMainForTestというクラス名を指定。

コマンド実行
> php worker craft:main MainForTest

[success] メイン処理クラスの生成に成功しました (MainForTest)

生成されたクラスはapp/MainClassの場所に格納されます。

②サーバーを起動

php workerコマンドを使ってapp:main-for-testというサーバー名を指定して起動。
(サーバー名はキャメルケースをスネークケースに変換して先頭にapp:を付与したものになります)
今回の場合はポート番号10000番で起動。

コマンド実行
> php worker app:main-for-test 10000

これでホスト名'localhost'(デフォルト)の10000ポートをListenポートとしてサーバーが起動します。(Ctrl+Cで停止します)

また、php workerを実行して再度USAGEを表示すると、先ほど生成したサーバーの名前がmainカテゴリへ追加されているのが確認できます。

コマンド実行
> php worker
SOCKET-MANAGER Framework 1.0.0

Usage:
  command [arguments]

 main
  app:main-for-test                              Command description
 craft
  craft:init <初期化クラス名>                     初期化クラスの生成
  craft:parameter <UNITパラメータクラス名>        UNITパラメータクラスの生成
  craft:protocol <プロトコルUNIT定義のクラス名>   プロトコルUNIT定義のクラスとステータス名Enumの生成
  craft:command <コマンドUNIT定義のクラス名>      コマンドUNIT定義のクラスとキュー/ステータス名Enumの生成
  craft:main <メイン処理のクラス名>               メイン処理クラスの生成
  craft:setting <設定ファイル名>                  設定ファイルの生成
  craft:locale <メッセージファイル名>             メッセージファイルの生成

利用できるプロジェクト環境

サーバー開発が始められる環境は、開発の目的に合わせて以下の4種類のプロジェクトから選べるようになっています。

①フレームワークのデモ環境

Webブラウザ⇒マインクラフト間チャットが可能なチャットサーバーのデモ環境です。
デモ環境には6種類のサーバーが内包されていて、マルチサーバー環境でサーバー間通信(IPC)によるプライベートメッセージの送信が可能なサーバーも含まれています。

②新規プロジェクト開発環境

プロトコル開発も含めて一から始められる環境です。
開発に必要な各コマンドの利用例をご紹介しています。

③Websocketサーバー開発環境

Websocketプロトコルが実装済の環境で、サーバーコンテンツの開発から始められます。
簡単なチャットコンテンツの作成例をご紹介しています。

④マインクラフトコンテンツ専用環境

マインクラフトのカスタムアイテムやカスタムエンティティを制御できます。
Webブラウザでアイテムショップを運用できます。
以下のページではカスタムアイテムの一つである「いなずまの弓」を実装例としてプロジェクト環境をご紹介しています。

この環境では①のデモ版を継承しているのでデモの機能はそのまま使えます。

おわりに

コマンドベースのインターフェースはLaravelとの連携を考慮しているので、以下のページでその連携方法をご紹介しています。

連携後はLaravelのコマンドを使ってサーバーを起動する事もできるので、Laravelのリソースを使った開発が可能になる事に加え、Webアプリとのオールインワン環境としても使えるようになります。
また、Laravelとの連携後であってもこのフレームワークのコマンドを使って引き続きサーバー開発が行えます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?