zoukankan      html  css  js  c++  java
  • 【swoole2.0】 PHP + swoole2.0 初体验

    背景:

    centos7   PHP7.1   swoole2.0

    准备工作: 

      一、  swoole  扩展安装

      1 下载swoole

    cd  /usr/local
    wget -c https://github.com/swoole/swoole-src/archive/v2.0.8.tar.gz
    tar -zxvf v2.0.8.tar.gz
    cd swoole-src-2.0.8/

        2 编译& 安装

      使用phpize来生成php编译配置

      ./configure 来做编译配置检测

      make进行编译,make install进行安装

     phpize
     ./configure
     make && make install

       3 修改php.ini 加载swoole扩展

    extension=swoole.so

     4 重启服务器  

    service nginx restart 
    service php-fpm restart

    5 验证是否安装成功

    php -m

      二、  telnet 服务安装

    1 安装   telnet    telnet-server

    yum install  telnet  telnet-server     

     2  检测是否安装成功 

    rpm -qa telnet-server 
    rpm -qa telnet 

    3 重新启动xinetd守护进程

    由于telnet服务也是由xinetd守护的,所以安装完telnet-server,要启动telnet服务就必须重新启动xinetd 

    service xinetd restart

    4 测试:查看TCP的23端口是否开启正常 

    netstat -tnl |grep 23

     三 。代码

    1 在项目目录 创建 index.php 文件 写入以下代码:

    //创建Server对象,监听 127.0.0.1:9502端口
    $serv = new swoole_server("127.0.0.1", 9502); 
    
    //监听连接进入事件
    $serv->on('connect', function ($serv, $fd) {  
        echo "Client: Connect.
    ";
    });
    
    //监听数据发送事件
    $serv->on('receive', function ($serv, $fd, $from_id, $data) {
        $serv->send($fd, "Server: ".$data);
    });
    
    //监听连接关闭事件
    $serv->on('close', function ($serv, $fd) {
        echo "Client: Close.
    ";
    });
    
    //启动服务器
    $serv->start(); 

    这里就创建了一个TCP服务器,监听本机9502 端口,你也可以改成其他的端口号(服务器必须支持此端口)

    2 启动server : cd到你得项目目录下。与index.php文件同级 。执行

    php index.php

    备注: 也可以直接执行

    php  /全路径/index.php

    这个时候,其实Server已经启动了,并且正在运行,监听了本机的9502端口,此时Server处于等待的状态,所以没有任何输出。

    PS: 启动之后,不要动了, 便于查看客户端的链接信息。测试成功之后。可以关闭。纯用客户端

    3  我们新开一个窗口 ,使用telnet 链接  

    # 在第二个Shell窗口
    telnet 127.0.0.1  9502

    输入

    hello

    结果如下

     此时,我们再返回第一个窗口,就会看到刚才卡住的光标有输出了:

     

    输出的正是我们在OnConnect回调中设置的内容。

     4  注意这句话: 

    Escape character is '^]'. 

    这个提示的意思是按Ctrl + ] 会呼出telnet的命令行,出来telnet命令好之后就可以执行telnet命令,例如退出出telnet是quit.

    如果你需要退出telnet ,就先使用 Ctrl + ]  呼出 命令行。然后输入

    quit

    切换到 server窗口,会看到关闭的提示

    这样子说明整个过程成功了。

     5 断开链接

        如果修改了index.php,必须断掉之前,然后重新打开。
        新建脚本  起名  swoole_stop.sh  (网上找的,我不会写,过!)

    #! /bin/bash
    ps -eaf |grep "index.php" | grep -v "grep"| awk '{print $2}'|xargs kill -9

    这需要放在和  index.php 同一个文件夹。
    我们需要cd到这个文件夹,执行

    sh swoole_stop.sh

    结果:

    反看server 窗口

  • 相关阅读:
    html marque属性说明
    asp.net中转换web user control为custom web control
    免费的挖掘软件推荐(转)
    成为数据分析师的3个技能(转)
    基于数据库营销的433定律(转)
    ODS项目常见问题
    visual studio 2010 professional , premium, ultimate各版本功能对比
    C++异常处理之二 (How a VC++ compiler implements exception handling)
    仿函数(又名函数对象)与仿函数配接器
    Windows 异常处理(Structured Exception Handling)
  • 原文地址:https://www.cnblogs.com/richerdyoung/p/8316803.html
Copyright © 2011-2022 走看看