swoole学习细节笔记

swoole 笔记
1,通过telnet命令去链接服务端host,模拟客户端请求e

2,fwrite(STDOUT, 'enter data:'); fgets(STDIN); 在php-cli模式下脚本输入内容

3,查看监听swoole server端线程数命令 ps aft | grep tcp.php(脚本名)

4,ps 查看进程 netstat 查看端口 pstree -p pid 查看进程树

5, swoole udp服务,测试连接方式 nc -u 127.0.0.1 9502

6, 设置http_server获取静态资源方法,调用set方法的enable_static_handler/document_root参数

7, websocket支持双向通信,传统http只能客户端发起请求到服务器,服务器进行响应,websocket支持服务器主动发送请求到客户端

8, swoole_timer_tick/after是异步定时器

9, 回调函数传参使用function($param1) use ($param2) {} $param1是回调返回的参数,$param2是使用use传参的参数

10, swoole异步文件读写swoole_async_readfile()

11, php --ri swoole(扩展名) 查看扩展支持内容

12, swoole使用异步redis需要安装hiredis 参考https://wiki.swoole.com/wiki/page/p-redis.html,
重新编译编译swoole,在configure指令中加入--enable-async-redis,开启支持异步redis,重编译时使用make -j

13,static关键字可以用来修饰变量、方法。不经过实例化,就可以直接访问类中static的属性和static的方法。
eg:Task::method(),如类中方法无static则不能使用,报致命错误
see https://blog.csdn.net/Yeoman92/article/details/52766333

14,不同业务逻辑调用同一个websocket端口连接,不加以区分会把结果混淆在一起,使用swoole_server::$connections会拿到混淆在一起的客户端连接数据

15,php后台执行nohup命令
nohup php绝对路径 执行文件目录 >(有内容输出到某个位置) 输出位置 &

16,shell_exec函数php执行shell命令

17,平滑重启 使用shell USR1命令
USR1信号将导致以下步骤的发生:停止接受新的连接,等待当前连接停止,重新载入配置文件,重新打开日志文件,重启服务器,从而实现相对平滑的不关机的更改。

利用swoole搭建web服务器,假如不是80端口,通过浏览器域名,ip访问是到达不了服务器的,需要使用nginx代理,将请求发送到对应的端口
参考:http://coolnull.com/4275.html

浏览器->服务器->web服务器(执行到这里才打通网页连接)->websocket服务器

hosts无法做服务器ip的端口监听,正常指向到服务器,通过服务器做端口分发

项目地址:https://github.com/pashion/swoole

你可能感兴趣的:(swoole学习细节笔记)