PHP Classes

File: examples/case-studies/net/sockets/websocket_logger/websocket_logger-GR.md

Recommend this page to a friend!
  Packages of Christos Drogidis   Ascoos OS   examples/case-studies/net/sockets/websocket_logger/websocket_logger-GR.md   Download  
File: examples/case-studies/net/sockets/websocket_logger/websocket_logger-GR.md
Role: Documentation
Content type: text/markdown
Description: Documentation
Class: Ascoos OS
A PHP Web 5.0 Kernel for decentralized web and IoT
Author: By
Last change:
Date: 9 months ago
Size: 4,124 bytes
 

Contents

Class file image Download

WebSocket Server ?? ????????? ??? ???????????? ?????????

???? ? ?????? ?????????? ??????????? ???? WebSocket server ????????? ??? Ascoos OS, ? ?????? ?????????? ??????????? ???????? ??? ??????????? ????????????? ???????? ???? ??? ????????????? ?????????? ?????????.

??????

  • ??????? ????????? ????????? WebSocket ???????
  • ??????????????? ???????????? ?????????
  • ???????????? ????????? (?.?. ??????, ???????, ??????????)
  • ????????? ?????????????? ?? ??????
  • ????????? ????????? ????? ??????? (echo)

?????? ??????? ??? Ascoos OS

  • TWebSocketHandler ?????????? WebSocket server, ??????? socket, ????????? frames, ?????????? ???????
  • TEventHandler ??????????, ???????????? ??? ????????? ?????????

???? ???????

? ?????? ??????????? ?? ??? ?????? PHP: - websocket_logger.php

???????????? ??? ?? ??????: ??????? socket, ?????????? ?????????, ???????? ????????? ??? ?????????.

??????????

  1. PHP ? 8.2
  2. ????????????? Ascoos OS ? AWES 26

??? ?????????

  1. ??????? ????????? ??????????.
  2. ???????????? `TWebSocketHandler` ??? `TEventHandler`.
  3. ?????????? ????????? ??? ???????? ??? ?????????.
  4. ???????????? ??????????? WebSocket ??? ??????? ?? port.
  5. ??????? ??? ???????????? ?????????.
  6. ????????? ????????? ??????? ??? ??????????????? ?????????.
  7. ???????????? ????????? ??? ????????? ??????????????.
  8. ????????? ????????? ????? ???????.

?????????? ??????

$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.