test.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. require dirname(dirname(__FILE__)).'/vendor/autoload.php';
  3. require_once dirname(dirname(__FILE__)) . '/vendor/workerman/Autoloader.php';
  4. require_once dirname(dirname(__FILE__)) . '/vendor/mysql/src/Connection.php';
  5. require_once __DIR__ . '/config.php';
  6. use Workerman\Worker; //worker容器类
  7. use Workerman\Connection\AsyncTcpConnection; //连接异步客户端
  8. use Workerman\MySQL\Connection; //连接数据库的类
  9. use Workerman\Lib\Timer; //定时器函数
  10. use Monolog\Logger;
  11. use Monolog\Handler\StreamHandler;
  12. use Monolog\Handler\ErrorLogHandler;
  13. $task = new Worker();
  14. // 进程启动时异步建立一个到www.baidu.com连接对象,并发送数据获取数据
  15. $task->onWorkerStart = function($task)
  16. {
  17. // 不支持直接指定http,但是可以用tcp模拟http协议发送数据
  18. $connection_to_baidu = new AsyncTcpConnection('tcp://47.254.202.24:10009');
  19. // 当连接建立成功时,发送http请求数据
  20. $connection_to_baidu->onConnect = function($connection_to_baidu)
  21. {
  22. echo "connect success\n";
  23. $connection_to_baidu->send('{"type":"ping"}' . "\n");
  24. };
  25. $connection_to_baidu->onMessage = function($connection_to_baidu, $http_buffer)
  26. {
  27. var_dump($http_buffer);
  28. };
  29. $connection_to_baidu->onClose = function($connection_to_baidu)
  30. {
  31. echo "connection closed\n";
  32. };
  33. $connection_to_baidu->onError = function($connection_to_baidu, $code, $msg)
  34. {
  35. echo "Error code:$code msg:$msg\n";
  36. };
  37. var_dump($connection_to_baidu);
  38. $connection_to_baidu->connect();
  39. // 发送给 webserver 服务器 心跳=====================================================
  40. Timer::add(10, function () use ($connection_to_baidu) {
  41. $connection_to_baidu->close();
  42. });
  43. Timer::add(11, function () use ($connection_to_baidu) {
  44. $connection_to_baidu->onConnect = function($connection_to_baidu)
  45. {
  46. echo "connect success\n";
  47. $connection_to_baidu->send('{"type":"ping"}' . "\n");
  48. };
  49. $connection_to_baidu->onMessage = function($connection_to_baidu, $http_buffer)
  50. {
  51. var_dump($http_buffer);
  52. };
  53. $connection_to_baidu->onClose = function($connection_to_baidu)
  54. {
  55. echo "connection closed\n";
  56. };
  57. $connection_to_baidu->onError = function($connection_to_baidu, $code, $msg)
  58. {
  59. echo "Error code:$code msg:$msg\n";
  60. };
  61. $connection_to_baidu->connect();
  62. });
  63. };
  64. // 运行worker
  65. Worker::runAll();