PHP + Swoole2.0 初体验(swoole入门教程)

环境:centos7 + PHP7.1 + swoole2.0

准备工作:

一、 swoole 扩展安装

1 、下载swoole

cd/usr/localwget -c https://github.com/swoole/swoole-src/archive/v2.0.8.tar.gztar -zxvf v2.0.8.tar.gzcdswoole-src-2.0.8/

2 编译& 安装

使用phpize来生成php编译配置;

./configure 来做编译配置检测;

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

phpize./configuremake && make install

3 、修改php.ini 加载swoole扩展

extension=swoole.so

4 、重启服务器

servicenginx restart service php-fpm restart

5 、验证是否安装成功?

php-m

二、 telnet 服务安装

1 、安装 telnet telnet-server

yuminstalltelnet telnet-server

2 、检测是否安装成功

rpm-qa telnet-server rpm -qa telnet

3 、重新启动xinetd守护进程

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

servicexinetd restart

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

netstat -tnl |grep23

三、 代码

1、 在项目目录 创建 index.php 文件

写入以下代码:

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

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

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

执行

phpindex.php

备注: 也可以直接执行“php /全路径/index.php”;

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

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

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

# 在第二个Shell窗口telnet127.0.0.19502

输入

hello

结果如下:

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

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

4、注意这句话:

Escape characteris'^]'.

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

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

quit

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

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

5 、断开链接

如果修改了index.php,必须断掉之前,然后重新打开。

新建脚本 起名 swoole_stop.sh (网上找的,我不会写,过!)代码如下:

#! /bin/bashps -eaf |grep"index.php"| grep -v"grep"| awk'{print $2}'|xargskill-9

这需要放在和 index.php 同一个文件夹。

我们需要cd到这个文件夹,执行

shswoole_stop.sh

结果:

反看server 窗口:

php的swoole教程,PHP + Swoole2.0 初体验(swoole入门教程)相关推荐

  1. 来一起学习一下vue3.0 初体验---comeon

    vue3.0 初体验 第一步创建项目 第二步对vue项目进行升级 接下来你就可以尽情的开发啊 第一步创建项目 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用Ma ...

  2. vue3.0响应式源码实践,vue3.0初体验

    vue3.0响应式源码实践,vue3.0初体验 镇楼图--杀生丸.jpg vue-next(vue3.0预体验) 1. 使用: 2.vue-next的目录结构 3. reactive内部实现 作者上篇 ...

  3. 魅族 android6.0,大屏又好用的 MEIZU 魅蓝MAX及Flyme6.0初体验

    大屏又好用的 MEIZU 魅蓝MAX及Flyme6.0初体验 2017-01-03 15:49:10 9点赞 11收藏 28评论 其实这个手机已经买了快2个月了,奈何拖延症犯了.....一直不想写,拖 ...

  4. 安装教程-opencv3.1.0安装及VS2013配置教程

    安装教程-opencv3.1.0安装及VS2013配置教程 安装opencv 安装Image Watch 第一个opencv应用 安装opencv 准备opencv3.1.0安装包.提前安装VS201 ...

  5. 鸿蒙OS2.0初体验

    重要的放前面 鸿蒙官方开发文档 鸿蒙IDE下载地址 鸿蒙OS入门2.0教程 鸿蒙初体验视频 鸿蒙2.0开源地址 一.HarmonyOS优点 (1)多终端开发调试便捷 鸿蒙目前支持可以开发TV,wear ...

  6. 官方推荐!用TensorFlow 2.0做深度学习入门教程

    最近,TensorFlow 2.0版的开发者预览版发布没多久,这不,又有一篇优质教程来了. 最近,前Youtube视频分类的产品经理.Hands-On MachineLearning with Sci ...

  7. python3.7基础教程_关于本教程 |《Python 官方文档:入门教程 3.7.0》| Python 技术论坛...

    本文档最新版为 3.8,旧版本可能放弃维护,推荐阅读最新版! Python 入门教程 Python 是一门简单易学且功能强大的编程语言.它拥有高效的高级数据结构,并能够用简单又有效的方式进行面向对象编 ...

  8. mysql8.0怎么样_MySQL8.0初体验

    MySQL8.0的官方社区开源版出来有段时间了,而percona的8.0版本还没有正式对外发布(已发布测试版),一直以来也没安装体验下这个号称质的飞跃的版本,今天正好有些时间就下了安装体验体验. 一. ...

  9. python 科学计算基础教程电子版-终于领会python科学计算入门教程

    PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...

最新文章

  1. 【JavaScript吉光片羽】遭遇IE8
  2. MyEclipse使用总结
  3. c# list集合根据某个字段去重_Python list、dataframe去重
  4. Linux安装PHP curl拓展
  5. python两个函数中传递变量_如何在Python中向函数传递大量变量?
  6. STM8L 低功耗模式说明
  7. Python爬虫-微信定时消息发送
  8. java实现DFA 敏感词检测
  9. 计算机excel中钱的符号,在excel中输入钱的符号 excel货币符号
  10. 无线ap 热图测试软件,无线AP功能测试
  11. 问题——TortoiseGit Git clone 的时候密码写错
  12. win10修改DNS
  13. HQChart使用教程60-新版k线训练使用教程
  14. 多出口路由及其动态切换的配置
  15. pythoncad官网_Pycad: Python Extension for AutoCad
  16. db2 如何 将 oracle CONNECT BY 移植到 DB2
  17. 基于人工智能算法的多元负荷预测
  18. 《挑战程序设计竞赛》--初级篇习题POJ部分【动态规划】
  19. 程序员面试宝典(第4版)
  20. Qt项目名称修改方法

热门文章

  1. 个人老师常用的在线授课软件对比分析
  2. 数学符号的英文表达(持续更新中)
  3. 关于谷歌插件开发的了解
  4. 领域泛化(Domain Generalization)
  5. c++实现currency类(两种)
  6. springSecurity 登陆失败前台显示账号密码登录错误
  7. JVM中OOM和SOF的产生
  8. zookeeper集群搭建以及zoo.cfg配置详解
  9. 阿里云 Linux 3 安装mysql 亲测有效
  10. csdn添加新浪微博组件