Workerman 기반의 실시간 모니터링 시스템 구축
인터넷과 정보기술의 지속적인 발전으로 실시간 모니터링 시스템은 각계각층에서 점점 더 많은 주목을 받고 있습니다. 실시간 모니터링 시스템을 사용하면 서버, 네트워크 장비, 센서 데이터 등을 모니터링하고 적시에 문제를 감지하여 적절한 조치를 취할 수 있습니다. 이번 글에서는 PHP 프레임워크인 Workerman을 사용하여 간단한 실시간 모니터링 시스템을 구축하는 방법을 소개하겠습니다.
Workerman은 PHP로만 개발된 고성능 SOCKET 서버 프레임워크로, PHP 코드를 통해 실시간으로 브라우저에 데이터를 푸시할 수 있습니다. 가볍고 고성능이며 확장이 용이하여 실시간 모니터링 시스템 개발에 매우 적합합니다.
먼저 서버에 Workerman을 설치해야 합니다. 다음 명령을 통해 설치할 수 있습니다.
composer require workerman/workerman
설치가 완료되면 먼저 간단한 모니터링 서버 파일인 server.php를 생성하고 코드는 다음과 같습니다.
<?php require_once __DIR__.'/vendor/autoload.php'; use WorkermanWorker; $monitor = new Worker('websocket://0.0.0.0:2345'); $monitor->count = 4; $monitor->onWorkerStart = function($monitor) { echo "监控服务器启动 "; }; $monitor->onMessage = function($connection, $data) { global $monitor; // 处理从客户端接收到的数据 // 这里可以进行数据处理和分析,并将结果推送给客户端 }; Worker::runAll();
위 코드에서는 먼저 Workerman 프레임워크를 소개합니다. 모니터링 서버 개체 $ monitor를 만듭니다. 수신 주소는 websocket://0.0.0.0:2345입니다. 이는 모든 IP 주소의 포트 2345를 수신한다는 의미입니다. 다음으로, $monitor 객체의 count 속성을 4로 설정합니다. 이는 4개의 모니터링 서버 프로세스를 시작한다는 의미입니다. 마지막으로 $monitor 객체의 onWorkerStart 콜백 함수와 onMessage 콜백 함수를 설정하여 서버 시작 및 클라이언트 메시지 수신 로직을 처리합니다.
다음으로 모니터링 데이터를 표시하기 위한 간단한 프런트 엔드 페이지 index.html을 작성합니다. 코드는 다음과 같습니다.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>实时监控</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> </head> <body> <div id="monitor"></div> <script> var ws = new WebSocket("ws://your-server-ip:2345"); ws.onopen = function(event) { console.log("连接成功"); }; ws.onmessage = function(event) { var data = JSON.parse(event.data); // 处理从服务器接收到的数据 // 这里可以更新前端页面的内容,展示监控数据 }; ws.onclose = function(event) { console.log("连接关闭"); }; </script> </body> </html>
위 코드에서는 WebSocket 기술을 사용하여 서버와 실시간으로 통신합니다. 먼저 WebSocket 개체 ws를 만들고 서버의 주소와 포트 번호를 지정합니다. 다음으로 WebSocket 개체의 onopen, onmessage, onclose 및 기타 이벤트를 통해 서버에 연결하고, 서버 데이터를 수신하고, 연결을 닫는 논리를 처리합니다.
마지막으로 server.php 파일의 onMessage 콜백 함수에 데이터 처리 및 분석 로직을 작성하고 WebSocket 개체를 통해 실시간으로 프런트 엔드 페이지에 데이터를 보낼 수 있습니다. 간단한 예는 다음과 같습니다.
$monitor->onMessage = function($connection, $data) { global $monitor; // 处理从客户端接收到的数据 $result = // 处理和分析数据的逻辑 // 将结果推送给客户端 foreach($monitor->connections as $client) { $client->send(json_encode($result)); } };
위 코드에서는 먼저 데이터 처리 및 분석을 위해 $result 변수를 사용하고 그 안에 결과를 저장합니다. 그런 다음 foreach 루프를 통해 모든 클라이언트 연결을 반복하고 send 메서드를 사용하여 결과를 JSON 문자열 형식으로 각 클라이언트에 보냅니다.
위의 단계를 통해 Workerman 프레임워크를 사용하여 간단한 실시간 모니터링 시스템을 성공적으로 구축했습니다. index.html 파일을 프런트 엔드 페이지에 도입함으로써 모니터링 서버와의 실시간 통신 및 데이터 표시가 가능합니다.
물론 위의 예는 단순한 시연에 불과하며 실제 실시간 모니터링 시스템은 더욱 복잡하고 완전해질 것입니다. 귀하는 필요에 따라 이 시스템을 더욱 확장 및 개선하고 더 많은 모니터링 표시기와 기능을 추가할 수 있습니다. 이 기사가 Workerman 프레임워크의 사용과 실시간 모니터링 시스템 개발을 이해하는 데 도움이 되기를 바랍니다.
위 내용은 Workerman 기반 실시간 모니터링 시스템 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!