server.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. Co::set([
  3. 'trace_flags' => SWOOLE_TRACE_HTTP2,
  4. 'log_level' => 0,
  5. ]);
  6. go(function () {
  7. $server = new Co\Http\Server("127.0.0.1", 9501, false);
  8. /**
  9. * 静态文件处理器
  10. */
  11. //$server->handle('/static', $server->getStaticHandler());
  12. /**
  13. * WebSocket应用
  14. */
  15. $server->handle('/websocket', function ($request, $ws) {
  16. $ws->upgrade();
  17. $frame1 = $ws->recv();
  18. $frame2 = $ws->recv();
  19. var_dump($frame1, $frame2);
  20. $ws->push("hello world\n");
  21. while(true) {
  22. echo "recv begin:\n";
  23. $frame = $ws->recv();
  24. if ($frame == false) {
  25. echo "ws client is closed\n";
  26. var_dump("Error: ", swoole_last_error());
  27. break;
  28. }
  29. echo $frame->data ."\n";
  30. $ws->push("hello world");
  31. }
  32. });
  33. /**
  34. * Http应用
  35. */
  36. $server->handle('/', function ($request, $response) {
  37. var_dump($request);
  38. var_dump($request->get);
  39. $response->end("<h1>hello world</h1>");
  40. });
  41. $server->handle('/test', function ($request, $response) {
  42. var_dump($request->get);
  43. $response->end("<h1>Test</h1>");
  44. });
  45. $server->start();
  46. });
  47. swoole_event_wait();