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 连接测试:

  • 相关阅读:
    vector::reserve()对迭代器的影响
    C#日期格式转换大全
    aa
    C#中取到当前日期是在一年中的第几周
    EasyUI
    使用Ajax传递 json数据,并在一般处理页面进行接收全过程
    C#操作海量数据(Oracle、SQL Server)
    UE4教程
    游戏引擎的原理及应用
    C++基础02 (数组、函数、指针、结构体)
  • 原文地址:https://www.cnblogs.com/tangxuliang/p/9895888.html
Copyright © 2011-2022 走看看