<?php
//创建webSocket服务器
$ws=new swoole_websocket_server('0.0.0.0',); //open
$ws->on('open',function($ws,$request){
echo "新用户 $request->fd 加入 \n";
//设置用户ID
$GLOBALS['fd'][$request->fd]['id']=$request->fd;
//设置用户名
$GLOBALS['fd'][$request->fd]['name']='匿名用户';
}); //message
$ws->on('message',function($ws,$request){
$msg=$GLOBALS['fd'][$request->fd]['name'].":".$request->data."\n";
//用户设置昵称
if(strstr($request->data,"#name#")){
$GLOBALS['fd'][$request->fd]['name']=str_replace("#name#",'',$request->data);
}else{ //用户信息发送
//发送到每一个客户端
foreach($GLOBALS['fd'] as $i){
$ws->push($i['id'],$msg);
}
}
}); //close
$ws->on('close',function($ws,$request){
echo "客户端--{$request}断开连接\n";
//清除连接池
unset($GLOBALS['fd'][$request]);
}); //启动服务器
$ws->start();
//php index.php
//ps -ajft //查看启动进程
//service iptables stop //关闭防火墙 ?>

18.swoole学习笔记--案例的更多相关文章

  1. 《Learning Play! Framework 2》学习笔记——案例研究1(Templating System)

    注解: 这是对<Learning Play! Framework 2>第三章的学习 本章是一个显示聊天记录的项目,只有一个页面,可以自动对聊天记录进行排序.分组和显示,并整合使用了less ...

  2. Ubuntu 18.04学习笔记

    命令行快捷键 https://blog.csdn.net/wanlhr/article/details/80926804 Ubuntu18.04使用vi命令修改文件并保存 vi /opt/teamvi ...

  3. 01.swoole学习笔记--TCP服务器

    1.安装swoole扩展 2.网络调试助手进行调试 <?php //创建服务器 $host='192.168.10.31'; $port=; //$model='SWOOLE_PROCESS'; ...

  4. swoole学习笔记

    一.服务端 0. swoole常用的配置项: daemonize = true 守护进程化 worker_num #swoole配置参数 设置启动的Worker进程数: 如 1 个请求耗时 100ms ...

  5. Linux10.11-10.18)学习笔记(

    1Y86指令集体系结构 ISA:指令集体系结构,一个处理器支持的指令和指令的字节级编码 程序员可见的状态 Y86程序中的每条指令都会读取或修改处理器状态的某些部分,称为程序员可见状态.其中包括: 8个 ...

  6. 20135202闫佳歆--week5 课本18章学习笔记

    第十八章 调试 内核级开发的调试工作远比用户级开发艰难的多. 一.准备开始 准备工作需要的是: 一个bug 一个藏匿bug的内核版本 相关内核代码的知识和运气 在这一章里,调试的主要思想是让bug重现 ...

  7. scala编程第18章学习笔记——有状态的对象

    银行账号的简化实现: scala> class BankAccount{ | private var bal: Int = 0 | def balance: Int = bal | def de ...

  8. 2015.05.18,外语,学习笔记-《Word Power Made Easy》 03 “如何谈论不同从业者”

    Prefix Person,nous,etc. Practice,etc. Adjective psyche 精神 psychic ['saikik] adj.精神的n.灵媒 -logos 科研 ps ...

  9. 08.swoole学习笔记--异步tcp客户端

    <?php //创建异步tcp客户端 $client=new swoole_client(SWOOLE_SOCK_TCP,SWOOLE_SOCK_ASYNC); //注册连接成功的回调函数 $c ...

随机推荐

  1. 4 ehcache 配置

    拷贝ehcache.xml文件到工程的resources目录下面 <?xml version="1.0" encoding="UTF-8"?> &l ...

  2. 守神漏洞扫描器V1.2

    主界面 指纹利用 漏洞库 怎么说呢,个人感觉这个扫描器跟小哲的Test404Fuzzer差不多~ 就是功能多了旁站查询.C段查询.而且这款工具的exp比Test404Fuzzer的多了几个~ 总体来说 ...

  3. 延迟加载以及mybatis一级二级缓存

    延迟加载 延迟加载:在真正使用数据时才发起查询,不用的时候不查询,又叫按需查询(懒加载) 立即加载:不管用不用,只要调用方法,直接发起查询 表关系:一对多     多对一     一对一        ...

  4. Django:邮件功能实现

    django-users2和django的邮件功能模块都有相关的实现 ----------------------------------------------------------------- ...

  5. ubuntu最基本的软件

    输入法: https://www.cnbawwwlogs.com/zlslch/p/6943318.html qq: http://www.linuxidc.com/Linux/2016-09/134 ...

  6. js select下拉框下拉跳转代码

    下拉跳转原理很简单这个用到了select的onchangeg事件,只要这里改变我们就获取select值直接location.href=this.value即可. <select name=&qu ...

  7. Day3-I-Squares POJ2002

      A square is a 4-sided polygon whose sides have equal length and adjacent sides form 90-degree angl ...

  8. [DllImport("kernel32.dll")]

    这叫引入kernel32.dll这个动态连接库. 这个动态连接库里面包含了很多WindowsAPI函数,如果你想使用这面的函数,就需要这么引入.举个例子: [DllImport("kerne ...

  9. S7-300过程映像区详解

      一.概念  W过程镜像区输入字 PIW立即输入区字  PIW不用等系统刷新,立即读入 IW等待系统刷新后读入   二.PIW/IW,PQW/QW  引用西门子论坛一位大侠的比方加深理解:      ...

  10. 实验吧——Recursive

    环境:win10,kali虚拟机 工具:ida 虚拟机打开看看,发现是ELF文件,运行一下,额没有什么发现. Ida打开看看,发现是在文件内部运行python解释器,百度搜索了一个基本上可以找到Py_ ...