• 【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 窗口

  • 相关阅读:
    ASP.NET的三层架构(DAL,BLL,UI)
    页面开发辅助类—HtmlHelper初步了解
    ASP MVC之参数传递
    ASP.NET MVC学习之母版页和自定义控件的使用
    ASP.Net MVC开发基础学习笔记(2):HtmlHelper与扩展方法
    UITableView动态改变Cell高度
    UITableView动态改变Cell高度
    nodejs豆瓣爬虫
    nodejs豆瓣爬虫
    苹果系统OSX中Automator批量重命名
  • 原文地址:https://www.cnblogs.com/richerdyoung/p/8316803.html
Copyright © 2020-2023  润新知