18.swoole学习笔记--案例
<?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学习笔记--案例的更多相关文章
- 《Learning Play! Framework 2》学习笔记——案例研究1(Templating System)
注解: 这是对<Learning Play! Framework 2>第三章的学习 本章是一个显示聊天记录的项目,只有一个页面,可以自动对聊天记录进行排序.分组和显示,并整合使用了less ...
- Ubuntu 18.04学习笔记
命令行快捷键 https://blog.csdn.net/wanlhr/article/details/80926804 Ubuntu18.04使用vi命令修改文件并保存 vi /opt/teamvi ...
- 01.swoole学习笔记--TCP服务器
1.安装swoole扩展 2.网络调试助手进行调试 <?php //创建服务器 $host='192.168.10.31'; $port=; //$model='SWOOLE_PROCESS'; ...
- swoole学习笔记
一.服务端 0. swoole常用的配置项: daemonize = true 守护进程化 worker_num #swoole配置参数 设置启动的Worker进程数: 如 1 个请求耗时 100ms ...
- Linux10.11-10.18)学习笔记(
1Y86指令集体系结构 ISA:指令集体系结构,一个处理器支持的指令和指令的字节级编码 程序员可见的状态 Y86程序中的每条指令都会读取或修改处理器状态的某些部分,称为程序员可见状态.其中包括: 8个 ...
- 20135202闫佳歆--week5 课本18章学习笔记
第十八章 调试 内核级开发的调试工作远比用户级开发艰难的多. 一.准备开始 准备工作需要的是: 一个bug 一个藏匿bug的内核版本 相关内核代码的知识和运气 在这一章里,调试的主要思想是让bug重现 ...
- scala编程第18章学习笔记——有状态的对象
银行账号的简化实现: scala> class BankAccount{ | private var bal: Int = 0 | def balance: Int = bal | def de ...
- 2015.05.18,外语,学习笔记-《Word Power Made Easy》 03 “如何谈论不同从业者”
Prefix Person,nous,etc. Practice,etc. Adjective psyche 精神 psychic ['saikik] adj.精神的n.灵媒 -logos 科研 ps ...
- 08.swoole学习笔记--异步tcp客户端
<?php //创建异步tcp客户端 $client=new swoole_client(SWOOLE_SOCK_TCP,SWOOLE_SOCK_ASYNC); //注册连接成功的回调函数 $c ...
随机推荐
- Lesson 12 banks and their customers
Why is there no risk to the customer when a bank prints the customer's name on his cheques? When any ...
- 【快学springboot】1.快速创建springboot项目
若图片查看异常,请前往掘金查看:https://juejin.im/post/5d00e793f265da1b614ff10b 使用spring initialize工具快速创建springboot项 ...
- mac访问mysql
常用操作 开启Mysql服务 1.在终端中输入添加MySQL路径的命令: PATH="$PATH":/usr/local/mysql/bin; 2.在终端输入 mysql -uro ...
- 以及Hibernate和Mybatis区别
ORM框架? Object Relational Mapping,对象-关系映射. 项目中的业务实体有两种表现形式:对象和关系数据,即在内存中表现为对象,在数据库中表现为关系数据. 为什么需要ORM框 ...
- webView之可加载JavaScript
有两个方法 方法一: 首先就是在xml文件中添加webview标签很简单不用说明 初始化控件 private WebView wv= (WebView) findViewById(R.id.wv); ...
- Python字符串(二)
四.类型转换 1. 基本语法: 类型名(数据) --- 将指定数据转换成指定类型 说明:类型名 -任何python支持的,或者自定的类型都可以数据 -需要转换的对象,类型不同要求可能不一样 2. 转换 ...
- 远程服务器使用tensorboard
1 .由于服务器上tensorboard使用的端口是6006,因此,连接ssh时,将服务器的6006端口重定向到自己机器上的16006端口: ssh -L 16006:127.0.0.1:6006 u ...
- css 盒子模型简介
盒子模型 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...
- Day3-J-4 Values whose Sum is 0 POJ2785
The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute ...
- Day2-K-Red and Black-HDU1312
There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A ...