swoole 高手之路
  • Introduction
  • 简介
  • 入门安装
    • php7 安装
    • swoole 安装
    • ide 提示工具安装
  • 原理概念
    • 需要掌握的基础知识
    • IO 模型
    • TCP 与 UDP
    • TCP 粘包处理
    • 同步 与 异步
    • 进程 与 线程
    • Swoole进程结构
    • swoole的运行模式
    • swoole编程注意事项
    • Socket原理
    • Libevent
  • swoole 基础
    • 网络通信引擎
      • 创建TCP服务器
      • 创建TCP客户端
      • 创建UDP服务器
      • 创建HTTP服务器
      • 创建websocket服务器
    • 异步非堵塞IO
      • 异步文件系统IO
      • 异步Mysql
      • 异步Redis
      • 异步Http/WebSocket客户端
    • 进程 内存 协程
      • swoole进程管理模块
      • swoole 内存操作模块
      • swoole 协程
    • Task进程异步任务
    • 毫秒定时器
  • swoole 高级特性
    • 心跳检测
    • 守护进程、信号和平滑重启
    • mysql连接池
  • swoole 其他
    • nginx+swoole
    • 结合传统框架
  • swoole RPC调用
  • 附录 : 其他资料
    • Zan Extension
    • 资料
Powered by GitBook
On this page
  • 注意问题
  • 资料

Was this helpful?

  1. swoole 其他

结合传统框架

Previousnginx+swooleNextswoole RPC调用

Last updated 5 years ago

Was this helpful?

可以利用swoole的Http_server可以很轻松的实现一个异步多进程非阻塞的高性能服务器出来,但是加载传统的框架还是有很多的坑,我们掌握一些注意事项,也可以自行去解决.

注意问题

1、入口文件

框架是通过入口文件,做自动加载然后响应应用的,文件的加载,以及初始化操作都应该在worker当中去执行,每个工作进程加载一个框架实例,而不是每个请求有一个实例。

2、内容响应位置

响应内容是发生在客户端请求时,所以真正执行框架是在request事件当中。

3、加载http参数

默认swoole会将http的request参数做了封装,所以我们需要处理成原本的参数形式,让框架自己去组装。

4、常驻内存导致参数处理问题

Swoole是常驻内存的,所以对于对象的属性,不要去判断是否存在再去加载,否则会得到上次的结果,(pathinfo,get,post)

5、cli模式

有些框架当中会存在判断当前是否是cli模式,启动swoole就是cli启动所以需要处理下

6、数据库跟redis共用连接问题

看这里

在框架当中可以采取一个比较简单粗暴的方法处理,使用$GLOBALS处理,这样在同一个进程,就会有某个mysql或者redis的实例

资料

: ThinkPHP 5.1 Swoole 扩展

https://wiki.swoole.com/wiki/page/325.html
think-swoole