您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman入門到精通系列之第一季workerman(共313節詳細到極緻)
发布时间:2022-01-16 16:06:35编辑:雪饮阅读()
Workerman是什么?
Workerman是一款纯PHP开发的开源高性能的PHP 应用容器。
Workerman不是重复造轮子,它不是一个MVC框架,而是一个更底层更通用的服务框架,你可以用它开发tcp代理、梯子代理、做游戏服务器、邮件服务器、ftp服务器、甚至开发一个php版本的redis、php版本的数据库、php版本的nginx、php版本的php-fpm等等。Workerman可以说是PHP领域的一次创新,让开发者彻底摆脱了PHP只能做WEB的束缚。
实际上Workerman类似一个PHP版本的nginx,核心也是多进程+Epoll+非阻塞IO。Workerman每个进程能维持上万并发连接。由于本身常住内存,不依赖Apache、nginx、php-fpm这些容器,拥有超高的性能。同时支持TCP、UDP、UNIXSOCKET,支持长连接,支持Websocket、HTTP、WSS、HTTPS等通讯协议以及各种自定义协议。拥有定时器、异步socket客户端、异步Redis、异步Http、异步消息队列等众多高性能组件。
學習順序/課程列表
(4453)使用php7.3.4与composer安装workerman及composer指定php.ini
(4454)workerman使用HTTP协议对外提供Web服务(简单实现apache,nginx等服务)
(4455)workerman使用WebSocket协议对外提供服务
(4456)workerman直接使用TCP传输数据
(4457)workermanl的inux下运行环境检查
(4458)为workerman安装支持更大并发数所需的event扩展
(4459)workerman查看连接状态
(4460)workerman的debug和daemon方式区别及分别如何运行?
(4461)workerman实现Text文本协议
(4462)workerman自定义协议的实现
(4463)workerman自定义协议-xml数据包-包长与包首部
(4464)workerman自定义协议-jsonl数据包(首部无符号int四字节)及php原生telnet客户端实现
(4465)workerman使用二进制协议上传文件
(4466)workerman使用文本协议上传文件
(4467)优雅的定时任务workerman
(4468)workerman自定义协议-编写于用户目录
(4469)workerman单入口多实例(多监听)与worker的id属性
(4470)redis服务命令行指定端口及密码
(4471)workerman单入口多端口接收tcp消息
(4472)workerman进程数控制count
(4473)workerman识别进程-name属性
(4474)workerman属性-protocol(基于tcp实现http)
(4475)workerman只在指定进程运行的定时器
(4476)workerman端口复用reusePort属性
(4477)workerman端口复用reusePort属性实现同一个入口监听多个协议及端口
(4478)workerman利用logFile属性指定自身运行日志存储路径(不包含业务日志)
(4479)workerman利用属性connections遍历向客户端定时发消息
(4480)workerman利用属性pidFile自定义进程pid文件
(4481)workerman利用属性user实现指定用户运行进程
(4482)workerman属性stdoutFile(输出重定向)及daemonize实现脚本默认守护运行
(4483)workerman利用reloadable属性实现新增业务代码载入并保持已有客户端连接
(4484)workerman利用daemonize属性实现代码层控制进程启动方式是否以守护方式启动
(4485)workerman利用Timer库的persistent属性实现仅定时执行一次的任务及timer数组形式回调及回调参数
(4486)workerman接口stopAll及多线程请求测试
(4487)workerman接口runAll运行多个不同woker实例(不同协议)
(4488)workerman接口listen接合reusePort实现端口复用多实例共用端口
(4489)workerman回调onWorkerStart
(4490)workerman回调onWorkerReload
(4491)workerman回调onMessage
(4492)workerman回调onConnect获取远端ip
(4493)workerman回调onClose
(4494)workerman回调onBufferFull默认缓冲区大小配置
(4495)workerman回调onBufferFull(缓冲区溢出)
(4496)windows下命令后台运行
(4497)php或workerman利用posix_getpid函数获取进程id
(4498)workerman接口listen实现内外部通信(管理后台或系统向websocket前端通信及websocket前端间互相通信)
(4499)workerman类AsyncTcpConnection的__construct方法实现访问外部http服务
(4500)workerman类AsyncTcpConnection的__construct方法实现异步访问外部websocket服务,并设置以哪个本地ip及端口访问
(4501)workerman类TcpConnection的defaultMaxSendBufferSize属性
(4502)workerman类TcpConnection的maxPackageSize属性(最大接收包大小)
(4503)workerman类TcpConnection的maxSendBufferSize属性(缓冲区过载的影响因素)
(4504)workerman类TcpConnection的接口close
(4505)workerman类TcpConnection的接口getRemotePort获取远端对端端口
(4506)workerman类TcpConnection的接口getRemoteIp获取远端对端ip
(4507)workerman类TcpConnection的接口destroy
(4508)workerman类TcpConnection的回调属性onMessage
(4509)workerman类TcpConnection的回调属性onClose
(4510)workerman类TcpConnection的protocol属性
(4511)workerman类TcpConnection的id属性
(4512)workerman类TcpConnection的worker属性
(4513)workerman类TcpConnection的接口pauseRecv实现上传流量控制
(4514)workerman类TcpConnection的接口pauseRecv实现上传流量控制及流控恢复
(4515)workerman类TcpConnection的接口pipe通道实现流量控制tcp代理
(4516)workerman类TcpConnection的接口send
(4517)workerman的AsyncTcpConnection类的connect 方法实现异步redis代理
(4518)workerman的AsyncTcpConnection类的reConnect 方法实现异步断线重连
(4519)workerman的AsyncTcpConnection类的transport属性都利用实现https连接客户端
(4520)workerman的AsyncUdpConnection类的__construct构造方法及connect 方法实现同脚本共存udp客户端与服务端
(4521)workerman的AsyncUdpConnection类的send方法
(4522)workerman的Http服务-请求-获得请求参数get
(4523)workerman的Http服务-请求-获得请求参数post
(4524)workerman的Http服务-请求-获得请求对象
(4525)workerman的Http服务-请求-获得原始请求post包体
(4526)workerman的Http服务-请求-获取cookie
(4527)workerman的Http服务-请求-获取header
(4528)workerman的Timer定时器类的add方法实现闭包计划任务(定时任务)
(4529)workerman的Timer定时器类的add方法实现定时函数为类的方法
(4530)workerman的Timer定时器类的add方法实现定时函数为类的静态方法(带命名空间)
(4531)workerman的Timer定时器类的add方法实现定时函数为类的静态方法
(4532)workerman的Timer定时器类的add方法实现定时函数为类方法(类内部使用定时器)
(4533)workerman的Timer定时器类的add方法实现定时器函数为匿名函数,利用定时器接口传递参数
(4534)workerman的Timer定时器类的add方法实现定时器函数为普通函数
(4535)workerman的Timer定时器类的add方法实现定时器中销毁当前定时器(use闭包方式传递$timer_id)(变量引用地址的使用场景之一)
(4536)workerman的Timer定时器类的add方法实现定时器中销毁当前定时器(参数方式传递$timer_id)
(4537)workerman的Timer定时器类的add方法实现匿名传参定时器及定时器的删除
(4538)workerman的Timer定时器类的add方法实现只在进程中的定时器)
(4539)workerman的Timer定时器类的del方法实现定时器回调中删除当前定时器
(4540)workerman的Timer定时器类的del方法实现定时器删除
(4541)workerman的Timer定时器类的定时器注意事项-定时器id可能重复
(4542)workerman的Timer定时器类的定时器注意事项-多进程的进程安全(并发问题)
(4543)workerman的http服务-请求-上传文件获取及http的413错误
(4544)workerman的http服务-请求-获取指定上传文件
(4545)workerman的http服务-请求-获取host
(4546)workerman的http服务-请求-获取请求方法
(4547)workerman的http服务-请求-获取请求uri
(4548)workerman的http服务-请求-获取请求路径
(4549)将远程ftp目录直接映射到windows磁盘(网络位置)提高工作效率
(4550)workerman的http服务-请求-获取请求queryString
(4551)windows通过端口转发实现连接阿里云、腾讯云等远端服务器smb文件共享服务
(4552)windos通过端口转发实现自定义smb(cifs)连接端口连接远端服务器smb文件共享服务(多个服务器连接地址的配置)
(4553)workerman的http服务-请求-获取请求HTTP版本
(4554)workerman的http服务-请求-获取请求sessionId
(4555)workerman的http服务-响应-发送header - Response类初始化实例化之后更改一个或多个header
(4556)workerman的http服务-响应-发送header
(4557)workerman的http服务-响应-更改状态码 - Response类初始化实例化之后
(4558)workerman的http服务-响应-更改状态码
(4559)workerman的http服务-响应-快捷响应
(4560)workerman的http服务-响应-重定向 - 发送cookie
(4561)workerman的http服务-响应-重定向 - 发送文件(实现文件下载服务)
(4562)workerman的http服务-响应-重定向
(4563)workerman的http服务-响应 - 发送http chunk数据(有点懒加载的效果)
(4564)workerman的http服务-session会话-获取session对象
(4565)workerman的http服务-session会话-获取所有session数据
(4566)workerman的http服务-session会话-获取session中某个值
(4567)workerman的http服务-session会话-存储session
(4568)workerman的http服务-session会话-删除session数据
(4569)workerman的http服务-session会话-获取并删除session某个值
(4570)workerman的http服务-session会话-删除所有session数据
(4571)workerman的http服务-session会话-判断对应session数据是否存在
(4572)workerman的http服务-session管理-更改session存储引擎
(4573)workerman的http服务-session管理-设置session存储位置
(4574)workerman的http服务-session管理-更改存储驱动
(4575)workerman的http服务-SSE(推送服务,服务端主推)
(4576)workerman的http服务-基本调试
(4577)workerman的http服务-基本调试 - 查看运行状态
(4578)workerman实现http客户端及chunk服务端
(4579)workerman调试-网络抓包
(4580)workerman调试-跟踪系统调用
(4581)workerman常用组件-GlobalData变量共享组件
(4582)workerman常用组件-GlobalData变量共享组件-GlobalData 组件服务端
(4583)workerman常用组件-GlobalData变量共享组件-GlobalData 组件客户端
(4584)workerman常用组件-GlobalData变量共享组件-GlobalDataClient-全部用法(php-fpm环境也可以使用)
(4585)workerman常用组件-GlobalData变量共享组件-GlobalDataClient-全部用法在php-fpm环境也可以使用
(4586)workerman常用组件-GlobalData变量共享组件-GlobalDataClient-注意事項
(4587)workerman常用组件-GlobalData变量共享组件-GlobalDataClient-add
(4588)workerman常用组件-GlobalData变量共享组件-GlobalDataClient-cas
(4589)workerman常用组件-GlobalData变量共享组件-GlobalDataClient-increment
(4590)workerman常用组件-channel分佈式通訊組件
(4591)workerman常用组件-channel分佈式通訊組件-channelServer(channel組件服務端)
(4592)workerman常用组件-channel分佈式通訊組件-channelClient-connect
(4593)workerman常用组件-channel分佈式通訊組件-channelClient-on
(4594)workerman常用组件-channel分佈式通訊組件-channelClient-publish-實現7端通信
(4595)workerman常用组件-channel分佈式通訊組件-channelClient-unsubscribe
(4596)workerman常用组件-channel分佈式通訊組件-channelClient-例子-集群推送
(4597)workerman常用组件-channel分佈式通訊組件-channelClient-例子-分組發送(聊天組應用場景)
(4598)workerman常用组件-FileMonitor文件监控组件
(4599)workerman常用组件-MySQL组件-workerman之mysql-pdo_mysql安裝
(4600)workerman常用组件-MySQL组件-workerman之安装 Workerman-MySQL
(4601)workerman常用组件-MySQL组件-workerman之使用Workerman-MySQL
(4602)workerman常用组件-MySQL组件-workerman之使用Workerman-MySQL - 具体MySQL的Connection用法-獲取所有數據
(4603)workerman常用组件-MySQL组件-workerman之使用Workerman-MySQL - 具体MySQL的Connection用法-獲取一行數據
(4604)workerman常用组件-MySQL组件-workerman之使用Workerman-MySQL - 具体MySQL的Connection用法-獲取一列數據
(4605)workerman常用组件-MySQL组件-workerman之使用Workerman-MySQL - 具体MySQL的Connection用法-獲取單個值
(4606)workerman常用组件-MySQL组件-workerman之使用Workerman-MySQL - 具体MySQL的Connection用法-複雜查詢
(4607)workerman常用组件-MySQL组件-workerman之使用Workerman-MySQL - 具体MySQL的Connection用法-插入
(4608)workerman常用组件-MySQL组件-workerman之使用Workerman-MySQL - 具体MySQL的Connection用法-更新(update)
(4609)workerman常用组件-MySQL组件-workerman之使用Workerman-MySQL - 具体MySQL的Connection用法-刪除
(4610)workerman常用组件-MySQL组件-workerman之使用Workerman-MySQL - 具体MySQL的Connection用法-事務
(4611)解決sourceTree突然無法推送到一個可讀可寫的公共碼雲(git)項目問題
(4612)workerman-mysql组件-其它数据库类使用-thinkphp(think-orm)
(4613)workerman-mysql組件-其它數據庫類=medoo的數據庫類的使用
(4614)workerman-redis組件
(4615)workerman-redis組件 - 回調函數
(4616)workerman-redis組件 -連接
(4617)workerman-redis組件 -auth-純密
(4618)redis6系列新特性acl鑒權-設置用戶名及密碼
(4619)谷歌親兒子pixel4解鎖之旅bootloader解鎖
(4620)pixel4a破解獲取root權限
(4621)再談安卓adb無綫調試(及超級終端的代替品termius介紹)-解決每次手機重慶后至少需要一次的usb綫纜鏈接(懶到極緻了。。。)
(4622)redis訪問控制acl save使用-將acl用戶名及密碼配置到外部配置文件中
(4623)redis-acl-關閉默認賬號default登錄權限帶來的問題,redis的acl的admin賬號設置
(4624)workerman-redis組件 -pSubscribe
(4625)workerman-redis組件-subscribe
(4626)workerman-redis組件-select
(4627)workerman-redis組件 -get
(4628)workerman-redis組件 -set
(4629)workerman-redis組件 -setEx, pSetEx
(4630)workerman-redis組件 -del
(4631)workerman-redis組件-exists
(4632)workerman-redis組件-incr, incrBy
(4633)workerman-redis組件-incrByFloat
(4634)workerman-redis組件-mGet
(4635)workerman-redis組件-getSet
(4636)workerman-redis組件-randomKey
(4637)workerman-redis組件-move
(4638)workerman-redis組件-rename
(4639)workerman-redis組件-rename
(4640)workerman-redis組件-renameNx
(4641)workerman-redis組件-expire
(4642)workerman-redis組件-keys
(4643)workerman-redis組件-type
(4644)workerman-redis組件-append
(4645)workerman-redis組件-getRange
(4646)workerman-redis組件-setRange
(4647)workerman-redis組件-strLen
(4648)workerman-redis組件-getBit
(4649)workerman-redis組件-setBit
(4650)workerman-redis組件 -bitOp
(4651)workerman-redis組件 -bitCount
(4652)redis-sort命令之外部排序by的使用
(4653)redis-sort命令limit的使用
(4654)redis-sort命令之外部排序by的使用以及結合get以及redis批量執行多命令的使用
(4655)redis-sort命令asc與desc
(4656)redis-sort命令對字符串進行排序alpha的使用
(4657)redis-sort命令的store使用
(4658)workerman-redis組件 -sort
(4659)workerman-redis組件 -ttl, pttl
(4660)workerman-redis組件 -mSet, mSetNx
(4661)workerman-redis組件 -hSet
(4662)workerman-redis組件 -hSetNx
(4663)workerman-redis組件 -hGet
(4664)workerman-redis組件 -hLen
(4665)workerman-redis組件 -hDel
(4666)workerman-redis組件 -hKeys
(4667)workerman-redis組件 -hVals
(4668)workerman-redis組件 -hGetAll
(4669)workerman-redis组件-hExists
(4670)workerman-redis组件-hIncrBy
(4671)workerman-redis组件-hIncrByFloat
(4672)workerman-redis组件-hMSet
(4673)workerman-redis-hMGet
(4674)workerman-redis-blPop, brPop
(4675)workerman-redis-bRPopLPush
(4676)workerman-redis-lIndex
(4677)workerman-redis-lInsert
(4678)workerman-redis-lPop
(4679)workerman-redis-lPush
(4680)workerman-redis-lPushx
(4681)workerman-redis-lLen
(4682)workerman-redis-lRange
(4683)workerman-redis-lrem
(4684)workerman-redis-lSet
(4685)workerman-redis-lTrim
(4686)workerman-redis-rPop
(4687)workerman-redis-rPopLPush
(4688)workerman-redis-rPush
(4689)workerman-redis-rPushX
(4690)workerman-redis-sAdd
(4691)workerman-redis-sCard
(4692)workerman-redis-sDiff
(4693)workerman-redis-sDiffStore
(4694)workerman-redis-sInter
(4695)workerman-redis-sInterStore
(4696)workerman-redis-sIsMember
(4697)workerman-redis-sMembers
(4698)workerman-redis-sMove
(4699)workerman-redis-sPop
(4700)workerman-redis-sRandMember
(4701)workerman-redis-sRem
(4702)workerman-redis-sUnion
(4703)workerman-redis-sUnionStore
(4704)workerman異步http組件-http-client
(4705)workerman异步消息队列组件-mqtt
(4706)workerman异步消息队列组件-redis-queue - 在非workerman环境向队列发送消息
(4707)workerman异步消息队列组件-redis-queue
(4708)workerman異步http組件-http-client
(4709)配置安装Apache ActiveMQ(5.16.3-linux-64)
(4710)rabbitmq安装
(4711)workerman异步消息队列组件-rabbitmq
(4712)workerman异步消息队列组件-stomp
(4713)图片跨域與nginx配置文件下載圖片下載
(4714)workerman-crontab定时任务
(4715)workerman-crontab定时任务 - 接口-销毁定时器
(4716)workerman-常见问题-心跳
(4717)awk與xargs結合的妙用-批量幹掉workerman進程
(4718)linux的vi使用小技巧-ctrl+z恢復編輯位置
(4719)workerman常見問題-如何實現異步任務
(4720)sqlserver2008-go的理解
(4721)sqlserver2008 peocedure_调用 存儲過程的調用
(4722)sqlserver2008 select在存儲過程中使用select查詢
(4723)sqlserver2008 存儲過程定義參數,接收參數
(4724)sqlserver2008 QUOTED_IDENTIFIER 值為ON的理解
(4725)sqlserver2008 查看存储过程创建时的语句(脚本)
(4726)sqlserver2008 存儲過程 創建
(4727)sqlserver2008 存儲過程的調用
(4728)sqlserver2008-php7.3 linux安装连接sqlserver扩展pdo_sqlsrv
(4729)workerman常见问题-监听ipv6
(4730)sqlserver2008 指定端口進行連接登錄
(4731)sqlserver2008 奇葩的N用法 賦值加N 參數加N
(4732)php7.3對sqlserver2008数据库连接查询
(4733)sqlserver2008 調用一個有接收多個參數 并且希望有return_value返回值的調用方式
(4734)mysql從point字段中拿出經緯度lat、lng
(4735)workerman-常見問題-創建wss服務-直接用Workerman开启SSL
(4736)Linux中死灰復燃的進程如何殺死?fuser命令的使用
(4737)sqlserver連接錯誤SSL routinesssl_choose_client_versionunsupported protocol
(4738)sqlcmd的使用-linux中也可以連接sqlserver數據庫(2008)
(4739)workerman創建wss服務-(配置于nginx上作爲nginx的location轉發)
(4740)workerman創建wss服務(基於apache基於phpstudy環境)
(4741)workerman創建https服務
(4742)workerman創建https服務(普通請求轉https請求,基於寶塔的nginx實現)
(4743)workerman作爲客戶端-作爲ws或wss客戶端-做為ws客戶端
(4744)sqlserver2008上常用系列之分頁公式
(4745)workerman作爲客戶端系列之http代理搭建
(4746)workerman作爲客戶端系列之socket5即s5代理搭建基於centos7.3
(4747)s5代理socket5代理安卓端如何連接(proxy droid的使用)?及android 12的一些新特性 媒體轉碼真的很棒
(4748)pixel4a第二次破解獲取root權限基於安卓12 android 12(安全更新千萬別點!)
(4749)workerman常见问题-php的几种回调写法-普通函数回调
(4750)workerman常见问题-php的几种回调写法-类方法作为回调
(4751)workerman常见问题-php的几种回调写法-类的静态方法作为回调
(4752)惊艳的android12 内置的无线调试
(4753)workerman系列之tp5(thinkphp5)日志结合workerman使用
(4754)基于centos8配置下证书登录哈-并基于MobaXterm应用配置证书登录
(4755)workerman系列之nginx配置反向代理于workerman時候實現workerman獲得真實客戶端ip
(4757)基於workerman實現ws获取真實客戶端ip(反向代理環境下)
(4758)https在反向代理環境下获取真实ip(基於workerman實現)
(4759)http反向代理環境下获取真实ip(基於workerman)
(4760)workerman16进制与2进制字符串的转换(局限有点狭隘,應該是php的原生能力)
(4761)workerman服務治理系列之workerman服务(脚本)自启动(开机自启)(centos7環境下)
(4762)workerman服務治理優化系列之連接數管理-根据连接数重启
(4763)workerman系列之再談socket5代理s5優化
(4764)workerman系列之windows環境下多实例多協議共存
(4765)workerman-websocket协议-websocket协议握手(get,server全局變量(HTTP_ORIGIN))
关键字词:workerman,入門,精通
相关文章
- workerman也能玩二進制流workerman推送圖片音視頻實例
- workerman-websocket协议-websocket协议握手(get,serv
- workerman系列之windows環境下多实例多協議共存
- workerman系列之再談socket5代理s5優化
- workerman服務治理優化系列之連接數管理-根据连接数重
- workerman服務治理系列之workerman服务(脚本)自启动(开机
- workerman16进制与2进制字符串的转换(局限有点狭隘,應該
- http反向代理環境下获取真实ip(基於workerman)
- https在反向代理環境下获取真实ip(基於workerman實現)
- 基於workerman實現ws获取真實客戶端ip(反向代理環境下)