다른 "임의"클라이언트와 클라이언트를 일치시키는 임의 채팅 응용 프로그램을 개발 중입니다. Pseudo-Random 클라이언트는 "열린"클라이언트 목록을 쿼리하고 목록의 맨 위에서 선택하기 때문에 무작위입니다.1 대 1 랜덤 중매
답변을 검색했지만 mySQL의 관계형 데이터베이스를 기반으로하는 중매 솔루션에 대한 리소스가없는 것 같습니다. 내가 만난 문제는 모든 클라이언트가 "검색"으로 설정된 경우 각 (사용자)가 하나 (a)에 연결하려고 시도하는 동안 (a) 다른 클라이언트 (b)에 연결하려고 시도한다는 것입니다. {a 사용자가 a를 추격하다가 동시에 쫓고있다.}
둘 모두가 일치하지 않는 클라이언트 풀에있을 때 두 명의 임의의 클라이언트를 연결하여 정보를 교환하는 가장 단순한 구조와 프로세스는 무엇일까요?
네, 확실히 수수께끼입니다. 데이터베이스에서 풀을 지속적으로 확인하고 각 사용자를 할당하는 중재자 역할을하는 PHP 스크립트를 어떻게 설정합니까? 그것이 내가 머리를 쓰지 못하는 부분이다. –
나는 최근에 비슷한 것을 만들었습니다. 사용자를 검색하기 위해 데이터베이스를 폴링하는 while 루프가없는 스크립트를 가질 수 있으며, 두 개가 발견되면 검색 테이블에서 해당 항목을 제거하고 각 클라이언트에 연결 정보를 보냅니다. 스크립트가 검색 테이블에서 아무것도 찾지 못하면'sleep (1)'을 실행 한 다음 반복합니다. 물론 PHP는 장기 실행 프로세스를 만드는 최고의 언어는 아닙니다.하지만 Supervisord와 같은 프로세스 관리자를 사용하여 스크립트가 충돌하는 경우에도 스크립트가 실행되도록 유지한다면 괜찮은 해결책입니다. – JrBaconCheez