zoukankan      html  css  js  c++  java
  • Workerman最简示例

    Workerman 是一款纯 PHP 开发的开源高性能的 PHP socket 服务框架。

    官方文档:http://doc.workerman.net/

    Workerman 为 MySQL 代理

    示例:http://doc.workerman.net/async-tcp-connection/connect.html

    <?php
    
    use WorkermanWorker;
    use WorkermanConnectionAsyncTcpConnection;
    require_once './Workerman/Autoloader.php';
    
    // 创建一个Worker监听2345端口,使用http协议通讯
    $tcp_worker = new Worker("tcp://0.0.0.0:2345");
    
    // 启动4个进程对外提供服务
    $tcp_worker->count = 4;
    
    $tcp_worker->onConnect = function ($connection) {
        echo 'new connection '.$connection->getRemoteIp().PHP_EOL;
    
        // 异步建立一个到实际mysql服务器的连接
        $connection_to_mysql = new AsyncTcpConnection('tcp://172.17.0.3:3306');
    
        // mysql连接发来数据时,转发给对应客户端的连接
        $connection_to_mysql->onMessage = function ($connection_to_mysql, $data) use ($connection) {
            $connection->send($data);
        };
        // mysql连接关闭时,关闭对应的代理到客户端的连接
        $connection_to_mysql->onClose = function($connection_to_mysql) use ($connection) {
            $connection->close();
        };
    
        // 执行异步连接
        $connection_to_mysql->connect();
    
        // 客户端发来数据时,转发给对应的mysql连接
        $connection->onMessage = function($connection, $data) use ($connection_to_mysql) {
              $connection_to_mysql->send($data);
        };
        // 客户端连接断开时,断开对应的mysql连接
        $connection->onClose = function($connection) use ($connection_to_mysql) {
            $connection_to_mysql->close();
        };
    };
    
    // 接收到浏览器发送的数据时回复hello world给浏览器
    $tcp_worker->onMessage = function($connection, $data)
    {
        // 向浏览器发送hello world
        // $connection->send('hello world');
        // $connection->close();
        echo $data;
    };
    
    // 运行worker
    Worker::runAll();

    使用 Navicat 连接测试:

  • 相关阅读:
    洛谷P3569 [POI2014]KAR-Cards(线段树)
    洛谷P3295 [SCOI2016]萌萌哒(倍增+并查集)
    GFS分布式文件系统脚本
    源码安装apache脚本
    python如何安装cv2
    从npz文件中读取图片并显示的小例子
    读取npz,并显示图像
    Python中.npz文件的读取
    导出MNIST的数据集
    Keras下载的数据集以及预训练模型保存在哪里
  • 原文地址:https://www.cnblogs.com/tangxuliang/p/9895888.html
Copyright © 2011-2022 走看看