12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. require_once __DIR__ . '/vendor/autoload.php';
  3. // require_once __DIR__ . '/ThermalPrinting.php';
  4. try {
  5. echo '> Starting server on ws://127.0.0.1:5544 ...', "\n";
  6. $websocket = new Hoa\Websocket\Server(
  7. new Hoa\Socket\Server('ws://127.0.0.1:5544')
  8. );
  9. $websocket->on('open', function (Hoa\Event\Bucket $bucket) {
  10. echo '> Connected', "\n";
  11. return;
  12. });
  13. $websocket->on('message', function (Hoa\Event\Bucket $bucket) {
  14. $data = $bucket->getData();
  15. // $rdata = json_decode($data['message']);
  16. echo '> Received request ', $data['message'], "\n";
  17. $bucket->getSource()->send($data['message']);
  18. $bucket->getSource()->broadcast($data['message']);
  19. // $thermalPrinting = new ThermalPrinting($rdata);
  20. // $thermalPrinting->startPrinting(2);
  21. // if ($rdata['type'] == 'print-receipt') {
  22. // echo '> Printing receipt... ', $rdata['data'], "\n";
  23. // }
  24. // echo '> Done print task ', "\n";
  25. return;
  26. });
  27. $websocket->on('close', function (Hoa\Event\Bucket $bucket) {
  28. echo '> Disconnected', "\n";
  29. return;
  30. });
  31. try {
  32. echo '> Server started', "\n";
  33. $websocket->run();
  34. } catch (Exception $e) {
  35. echo '> Error occurred, server stopped. ', $e->getMessage(), "\n";
  36. }
  37. } catch (Exception $e) {
  38. echo '> Error: ', $e->getMessage(), "\n";
  39. }