Swoole의 웹소켓은 지난 이틀 동안 개발에 사용될 예정인데, 일부 이해가 안 됩니다
$serv = new swoole_websocket_server("127.0.0.1", 9502);
$serv->on('열기', function($server, $req) {
echo "연결 열기: ".$req->fd;
});
$serv->on('메시지', function($server, $frame) {
echo "메시지: ".$frame->data;
$server->push($frame->fd, json_encode(["hello", "world"]));
});
$serv->on('닫기', function($server, $fd) {
echo "연결 종료: ".$fd;
});
$serv->start();
이것은 swoole 공식 웹사이트의 데모입니다. 클라이언트가 메시지 이벤트를 수신하여 서버에 메시지를 보내면 서버는 이 시나리오를 구현하고 싶다면 다음과 같이 메시지를 클라이언트에 보냅니다. 메시지를 대기열에 넣은 다음 사용자에게 메시지를 보냅니다(여기서 대기열은 Redis 대기열로 간주됩니다). 이 경우 메시지 이벤트를 모니터링할 수 없습니다.
그런 다음 온라인 사용자의 데이터를 저장해야 합니다. . 연결 후 웹소켓에 사용자 ID와 클라이언트 ID를 기록해 1대1 대응으로 데이터가 있으면 push 메소드를 호출해 사용자에게 데이터를 푸시합니다