2017-01-06 5 views
0

index.php는 Apache에서 파싱됩니다. 그것은 어떤 반응을 일으키는 반복적 인 PHP 인스턴스로 어떤 데이터를 전달해야합니다. 이것이 어떻게 최고로 성취 될 수 있습니까? 두 스크립트는 동일한 시스템에서 실행됩니다.다른 PHP 인스턴스간에 데이터 전달

<?php 
//index.php 
$status=sendDataToOtherInstance('hello'); //blocking function which returns true/false 

.

<?php 

//reactphp loop 

$foo->on('connection', function ($data){ 
    echo($data); 
    return $data==='hello'; 
}); 
+2

또 다른 PHP 인스턴스는 무엇입니까? –

+0

@JayBlanchard 어떻게 설명하면 좋을까요? 나는 두 개의 PHP 실행 인스턴스를 가지고 있으며 데이터는 하나에서 다른 인스턴스로 이동해야합니다. – user1032531

+0

다른 서버에 있습니까? 다른 파티션에 있습니까? –

답변

0

몇 가지 옵션 : 2 개 프로세스 당신처럼

사이

  1. HTTP는 빠른 것,이 너무 나쁜, 조금 지저분한 아니라고하지만, 좀 지저분.

  2. 유닉스 소켓 파일

    유일한 문제는 reactphp이 순간에 유닉스 소켓 작동하지 않는 것입니다.

    추가 정보 :이 작업을해야

    https://github.com/reactphp/socket/pull/17

  3. TCP 소켓. 하지만 첫 번째 옵션만큼이나 clunky.

솔직히 말해서 PHP의 한계에 도달하는 것 같습니다.

Node.js를이

나는 당신이 이제까지 그것을 사용했지만, node.js이 작업의 이런 종류의 위해 만들어진 있는지 확실하지 않습니다. PHP는 많은 기능을 허용하지 않습니다. LSemi으로

https://nodejs.org/en/

0

일종의 프로세스 간 통신이 필요합니다.

IPC로 할 수 있습니다 (물론). 공유 메모리를 사용합니다. 또는 성능이 약간 떨어지지 만 RAM 디스크 또는 임시 파일 시스템의 임시 파일을 사용하여 IMHO 관리 효율성을 향상시킬 수 있습니다. 물론 IPC는 세마포어 리소스를 기다릴 수있는 능력을 제공합니다.이 리소스는 유용 할 수 있으며 응답 성을 향상시킬 수 있습니다 (reactphp 프로세스에서 소켓이나 전체 HTTP 서버를 열어서 동일하게 만들 수 있음).

외부 애플리케이션 (예 : * MQ 또는 Redis)을 활용하여이 작업을 수행 할 수도 있습니다.

MySQL과 같은 데이터베이스를 사용하는 경우 두 프로세스가 공유 테이블을 통해 "통신"할 수 있습니다.

0

은 공유 메모리를 사용하여 작업을 수행 할 수 있습니다 또는 기본적으로 당신은 이미 당신은 왜 PHP 웹 소켓 클라이언트 라이브러리 응답을하지 않는 웹 소켓 서버를 가지고 있느냐?

https://github.com/Textalk/websocket-php