1.swoole搭建图文直播课和聊天室的业务逻辑
2.使用swoole遇到了哪些问题
a.进程隔离:
- 多进程之间会产生进程隔离,global无效,不能共用一个mysql,redis连接,所以每个进程单独开一个数据库连接
- 如何解决:redis 、swoole_table
b.是否可以共用1个redis或mysql连接
- 不可以,无法确定返回处理的reactor的id
c. 为什么客户端请求一次数据,服务器接收两条记录
- icons
d.为什么onReceive收到的数据这么大
- 客户端发送的多次请求,服务端是可以一次性接收的。并不是客户端发送一次,服务端接收一次
不可以。
3.如何理解swoole
swoole就是PHP外衣的c程序:其实就是c、java那些语言里面的高阶功能:
比如持久连接、异步通信、websocket,多线程。
4.swoole的工作原理
5.进程、线程、协程
进程拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度。
线程拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程也由操作系统调度。
协程和线程一样共享堆,不共享栈,协程由程序员在代码里调度。(援引网络博文)