현재 위치: > 최신 기사 목록> PHP 및 UNITY3D : Workerman을 사용하여 고성능 네트워크 커뮤니케이션 시스템을 구축합니다.

PHP 및 UNITY3D : Workerman을 사용하여 고성능 네트워크 커뮤니케이션 시스템을 구축합니다.

M66 2025-06-24

PHP 및 Unity3d의 배경

PHP는 종종 서버 개발에 사용되는 반면 Unity3D는 크로스 플랫폼 게임 및 대화식 경험을 구축하는 엔진입니다. 이 두 기술 스택은 완전히 다르지만,이 두 기술 스택은 특히 멀티 플레이어 게임 및 실시간 대화 형 시스템에서 실제 개발에서 큰 잠재력을 발휘할 수 있습니다.

노동자 소개

Workerman은 Pure PHP가 개발 한 고성능 비동기 네트워크 통신 프레임 워크입니다. 여러 프로토콜 (예 : TCP, UDP, WebSocket)을 지원하며 동시성 처리 기능이 우수합니다. Workerman을 사용하면 개발자는 특히 실시간 상호 작용이 필요한 응용 프로그램 시나리오에 적합한 안정적이고 효율적인 네트워크 서비스를 쉽게 만들 수 있습니다.

Workerman을 설치하는 방법

Workerman의 공식 웹 사이트에서 소스 코드를 다운로드하여 수동으로 설치하거나 Composer를 통해 설치할 수 있습니다.

 composer require workerman/workerman

PHP 측 : Workerman 기반 TCP 서비스 예제

서버 측에서는 Workerman을 사용하여 Unity3D 클라이언트와 통신하기 위해 TCP 서비스를 만들 수 있습니다. 기본 Echo 서버 구현은 다음과 같습니다.

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

use Workerman\Worker;

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

$worker-> onconnect = function ($ connection) {
    Echo "New Connection \ n";
};

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

$ worker-> onclose = function ($ connection) {
    echo "연결 폐쇄 \ n";
};

작업자 :: runall ();
?>

Unity3d Client : C# 연결 및 보내기 메시지

Unity3d 측면에서 C# 스크립트를 통해 서버와 TCP 연결을 설정하고 메시지를 보낼 수 있습니다.

UnityEngine 사용;
System.net.sockets 사용;
system.text 사용;

공개 클래스 클라이언트 : Monobehaviour
{
    개인 tcpclient 클라이언트;
    개인 네트워크 스트림 스트림;

    void start ()
    {
        클라이언트 = new tcpclient ( "localhost", 1234);
        stream = client.getStream ();
        SendMessage ( "안녕하세요, 세계!");
    }

    void sendMessage (문자열 메시지)
    {
        바이트 [] 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의 높은 동시 비동기 처리 기능과 함께 개발자는 효율적이고 실시간 반응 형 크로스 플랫폼 네트워크 커뮤니케이션 시스템을 구축 할 수 있습니다. 이 솔루션은 특히 게임, 실시간 상호 작용 및 다중 사용자 협업 시나리오에 적합하며 서버 개발에 유연하고 확장 가능한 아키텍처 지원을 제공합니다.