現在の位置: ホーム> 最新記事一覧> PHPおよびUNITY3D:Workermanを使用して高性能ネットワーク通信システムを構築する

PHPおよびUNITY3D:Workermanを使用して高性能ネットワーク通信システムを構築する

M66 2025-06-24

PHPおよびUnity3dの背景

PHPはサーバー開発によく使用されますが、Unity3Dはクロスプラットフォームのゲームとインタラクティブなエクスペリエンスを構築するためのエンジンです。これらの2つのテクノロジースタックは完全に異なりますが、2つの組み合わせは、特にマルチプレイヤーゲームとリアルタイムインタラクティブシステムで、実際の開発において大きな可能性を解き放つことができます。

Workermanの紹介

Workermanは、純粋なPHPによって開発された高性能の非同期ネットワーク通信フレームワークです。複数のプロトコル(TCP、UDP、WebSocketなど)をサポートし、優れた並行性処理機能を備えています。 Workermanを使用すると、開発者は安定した効率的なネットワークサービスを簡単に作成できます。これは、特にリアルタイムの対話を必要とするアプリケーションシナリオに適しています。

Workermanのインストール方法

Workermanの公式Webサイトからソースコードをダウンロードして手動でインストールするか、Composerを介してインストールできます。

 composer require workerman/workerman

PHPサイド:WorkermanベースのTCPサービスの例

サーバー側では、Workermanを使用してTCPサービスを作成してUnity3Dクライアントと通信できます。これが基本的なエコーサーバーの実装です。

<?php
require_once 'Workerman/Autoloader.php';

use Workerman\Worker;

$worker = new Worker("tcp://0.0.0.0:1234");

$worker-> onconnect = function($ connection){
    エコー「新しいしい接続\ n」;
};

$ worker-> onmessage = function($ connection、$ data){
    $ connection-> send($ data);
};

$ worker-> onclose = function($ connection){
    エコー「接続閉じた\ n ";
};

労働者:: ranall();
?>

UNITY3Dクライアント:C#はメッセージを接続して送信します

Unity3D側では、C#スクリプトを介してサーバーとのTCP接続を確立し、メッセージを送信できます。

UnityEngineの使用。
system.net.socketsを使用します。
System.textを使用しています。

パブリッククラスクライアント:Monobehaviour
{
    プライベートTCPCLIENTクライアント。
    プライベートネットワークストリームストリーム。

    void start()
    {
        client = new TcpClient( "localhost"、1234);
        stream = client.getStream();
        sendmessage( "Hello、world!");
    }

    void sendmessage(文字列メッセージ)
    {
        byte [] data = encoding.ascii.getBytes(メッセージ);
        stream.write(data、0、data.length);
    }

    void ondestroy()
    {
        stream.close();
        client.close();
    }
}

通信プロセス分析

サンプルコードからわかるように、Unity3DはTCPCLIENTを介してPHPバックエンドに接続され、メッセージを送信した後、サーバーのように戻り、基本的なメッセージエコーメカニズムを実現します。これにより、ユーザー認証、データの同期、リアルタイム通知など、後続の拡張機能の基礎が提供されます。

実用的なアプリケーションの拡張

この例は単純ですが、Unity3DとPHPサーバーの間の通信の中心的なアイデアを明らかにしています。 Workermanのロジックレイヤーを拡張することにより、次の機能を実装できます。

  • プレイヤー向けのリアルタイムバトルロジック

  • 複数のチャットルーム

  • リアルタイムデータブロードキャスト

  • サーバー上のイベントをクライアントにプッシュします

要約します

Unity3DでPHPを使用し、Workermanの同時非同期処理機能を使用することにより、開発者は効率的でリアルタイムの応答性のあるクロスプラットフォームネットワーク通信システムを構築できます。このソリューションは、ゲーム、リアルタイムのインタラクション、マルチユーザーコラボレーションシナリオに特に適しており、サーバー開発のための柔軟でスケーラブルなアーキテクチャサポートを提供します。