DownloadWebSocket Server ?? ????????? ??? ???????????? ?????????
???? ? ?????? ?????????? ??????????? ???? WebSocket server ????????? ??? Ascoos OS, ? ?????? ?????????? ??????????? ???????? ??? ??????????? ????????????? ???????? ???? ??? ????????????? ?????????? ?????????.
??????
-
??????? ????????? ????????? WebSocket ???????
-
??????????????? ???????????? ?????????
-
???????????? ????????? (?.?. ??????, ???????, ??????????)
-
????????? ?????????????? ?? ??????
-
????????? ????????? ????? ??????? (echo)
?????? ??????? ??? Ascoos OS
-
TWebSocketHandler
?????????? WebSocket server, ??????? socket, ????????? frames, ?????????? ???????
-
TEventHandler
??????????, ???????????? ??? ????????? ?????????
???? ???????
? ?????? ??????????? ?? ??? ?????? PHP:
- websocket_logger.php
???????????? ??? ?? ??????: ??????? socket, ?????????? ?????????, ???????? ????????? ??? ?????????.
??????????
-
PHP ? 8.2
-
????????????? Ascoos OS ?
AWES 26
??? ?????????
-
??????? ????????? ??????????.
-
???????????? `TWebSocketHandler` ??? `TEventHandler`.
-
?????????? ????????? ??? ???????? ??? ?????????.
-
???????????? ??????????? WebSocket ??? ??????? ?? port.
-
??????? ??? ???????????? ?????????.
-
????????? ????????? ??????? ??? ??????????????? ?????????.
-
???????????? ????????? ??? ????????? ??????????????.
-
????????? ????????? ????? ???????.
?????????? ??????
$ws = new TWebSocketHandler($properties);
$events = new TEventHandler([], $properties);
$events->register('ws', 'message.received', fn($msg) => $events->logger->log("Message received: $msg"));
$events->register('ws', 'client.connected', fn($client) => $events->logger->log("Client connected: $client"));
$events->register('ws', 'client.disconnected', fn($client) => $events->logger->log("Client disconnected: $client"));
$ws->enableWebSocket();
$ws->createSocket();
$ws->bindSocket('0.0.0.0', 8080);
$ws->listenSocket(5);
$ws->handleMultipleClients(function ($client, $data) use ($ws, $events) {
$message = $ws->receiveWebSocketFrame();
$events->trigger('ws', 'message.received', $message);
$ws->sendWebSocketFrame("Echo: $message");
}, timeout: 30);
??????????? ??????????
?????? ??????????: websocket_activity.log
Client connected: 192.168.255.255
Message received: Hello Server
Client disconnected: 192.168.255.255
?????
??????????
???????? ?? ??????????? ?? ?????? ??? ?????????? ????????????????, ???????????? ????????? ? ???????? ?????????. ????? ?? CONTRIBUTING.md ??? ???????.
?????
???? ? ?????? ?????????? ?????????? ??? ??? Ascoos General License (AGL). ????? ?? LICENSE.md.
|