Skip to content

对workerman的原理剖析,是对其基本功能的重新实现,并简化了相关逻辑。

Notifications You must be signed in to change notification settings

d2gin/socketman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

socketman

介绍

workerman的原理剖析,是对其基本功能的重新实现,并简化了相关逻辑。项目代码仅供学习交流。

安装教程

  • composer离线安装

    {
        "require": {
            "icy8/socketman": "dev-master"
        },
        "repositories": [
            {
            "type": "path",
            "url": "vendor/icy8/socketman"
            }
        ]
    }
    composer install

使用说明

  • 从workerman中砍掉的功能比较多,比如进程、端口复用、定时器、SSL等等。

  • 目前没有对http协议做过多的封装

使用示例

  1. 启动一个websocket服务

    <?php
    use icy8\SocketMan\Server;
    
    include "vendor/autoload.php";
    $server = new Server('websocket://0.0.0.0:996');
    // 监听
    $server->onConnect = function ($connection) {
        // 这部分事件只能在onConnect中监听
        // 暂时没有对这部分功能进行优化
        $connection->onWebsocketConnect = function ($connection) {};
        $connection->onWebsocketPing    = function ($connection) {};
        $connection->onWebsocketPong    = function ($connection) {};
    };
    // 这个事件会被提取到connection中
    $server->onMessage = function ($connection, $data) {
        var_dump($data);
    };
    $server->run();
  2. 启动一个http服务

    <?php
    use icy8\SocketMan\Server;
    
    include "vendor/autoload.php";
    $server = new Server('http://0.0.0.0:996');
    // 监听
    $server->onConnect = function ($connection) {};
    // 这个事件会被提取到connection中
    $server->onMessage = function ($connection, $request) {
        var_dump($request->header);
    };
    $server->run();

About

对workerman的原理剖析,是对其基本功能的重新实现,并简化了相关逻辑。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages