美文网首页
0001 workerman本地快速入门,环境变量的配置和命令行

0001 workerman本地快速入门,环境变量的配置和命令行

作者: 水电梁师傅 | 来源:发表于2017-08-23 10:17 被阅读997次

    不多介绍了,workerman搭建走起,去下载一个phpstudy,然后安装,这一步自己百度或者看我这篇http://www.jianshu.com/p/528b90bd887f,不是重点

    0001.PNG

    就目前的情况来看,我们将phpstudy放在e:/php/目录下边

    0002.png

    这里打开phpstudy,切换版本,尽量切5.4以上,我在这里切5.4

    在E:\php\phpstudy\php目录下可以看到不同的php版本

    0003.png

    点进去5.4看,有一个php.exe,后续的工作基本上就是对这个目录进行操作了

    0004.png

    php切换完了,需要配置环境变量,因为是测试,所以待会儿workerman待会要用命令行启动,在真实的线上可以使用一个init.php或者start.php去写一个脚本启动,只要运行这个页面就可以启动workerman,那么现在,计算机=>属性

    0005.PNG

    高级系统设置=>环境变量

    0006.PNG

    再path里面,在最后加分号,然后加入之前看到的php.exe所在环境目录

    0007.PNG

    如图所示,加完之后加分号,然后确定保存

    008.png

    在命令行环境中输入php -v出现版本信息即配置成功,别问我命令行环境怎么出来的(实际我用的5.6文章里头写错了,懒得改了,大家将就吧

    第二阶段 workerman的运行
    workerman下载地址,请移步官网

    http://www.workerman.net/download
    

    下载第一个就行,官网下载zip,解压

    解压文件夹改成workerman

    然后再文件夹外边也就是和workerman同级目录,创建一个test001.php
    代码如下,不要去理解他的意思,先复制

    <?php
    use Workerman\Worker;
    require_once '/workerman/Autoloader.php';
    
    $global_uid = 0;
    
    // 当客户端连上来时分配uid,并保存连接,并通知所有客户端
    function handle_connection($connection)
    {
        global $text_worker, $global_uid;
        // 为这个链接分配一个uid
        $connection->uid = ++$global_uid;
    }
    
    // 当客户端发送消息过来时,转发给所有人
    function handle_message($connection, $data)
    {
        global $text_worker;
        foreach($text_worker->connections as $conn)
        {
            $conn->send("user[{$connection->uid}] said: $data");
        }
    }
    
    // 当客户端断开时,广播给所有客户端
    function handle_close($connection)
    {
        global $text_worker;
        foreach($text_worker->connections as $conn)
        {
            $conn->send("user[{$connection->uid}] logout");
        }
    }
    
    // 创建一个文本协议的Worker监听2347接口
    $text_worker = new Worker("text://0.0.0.0:2347");
    
    // 只启动1个进程,这样方便客户端之间传输数据
    $text_worker->count = 1;
    
    $text_worker->onConnect = 'handle_connection';
    $text_worker->onMessage = 'handle_message';
    $text_worker->onClose = 'handle_close';
    
    Worker::runAll();
    

    这是官方文档的例子
    保存,不管去命令行,运行命令行(第一个窗口),去到test001.php所在目录然后运行

    pushd E:\php
    php test001.php
    

    运行之后发现服务启动了

    ----------------------- WORKERMAN -----------------------------
    Workerman version:3.4.6          PHP version:5.6.27
    ------------------------ WORKERS -------------------------------
    worker        listen               processes status
    none          text://0.0.0.0:2347   1        [OK]
    ----------------------------------------------------------------
    

    我们再开一个命令行窗口(第二个窗口)运行

    telnet 127.0.0.1 2347
    

    发现连接到了一个奇怪的页面,在里面输入会有奇怪的回显,别着急

    我们再开一个命令行窗口(第三个窗口)运行

    telnet 127.0.0.1 2347
    

    再二和三窗口输入字符,发现各自输入的字符居然可以互相看到,其实这就是一个聊天窗口通讯的例子了,至此,测试结束,入门也结束,至于test001.php代码到底再写什么,0002再说

    相关文章

      网友评论

          本文标题:0001 workerman本地快速入门,环境变量的配置和命令行

          本文链接:https://www.haomeiwen.com/subject/nqfddxtx.html