源码仅调用 精易模块8.0.5 和 鱼刺类多线程应用5.0(已包含在源码包内,不放心的自行在论坛下载相关模块)
采用原生 Socket 与 PHP Fastcgi 进行长连接通讯,其他通讯组件自行移植,源码未经优化,移植到生产环境的自行斟酌
源码包内包含 PHP8.2 NTS 版本,不放心的用户自行前往 https://windows.php.net/ 进行下载自己合适的版本
据了解5.4以上的PHP版本均可以使用 Fastcgi 模式 命令行下执行 php-cgi.exe -b IP:Port
源码优化空间和方向
- 修改单连接为多连接,采用 HP Socket(将模块改为程序集) 或者 Hashmap 存储 Client句柄,或者采用 IOCP 进行处理收发
- 采用内存池,预先分配 BUF_SIZE 的内存进行数据保存(防止多次内存拷贝)
- 采用数据类型,将解析后的响应数据直接返回
- 将节点数据类型,改为 Hashmap (注意要采用读写锁)
- 将循环等待改成 IOCP 完成端口进行通知(注意加上超时)
- 在发送请求阶段,加入队列,采用多线程方式对队列进行处理(接收亦然)
PHP 8.2 可以解压在任意目录,如果下载帖子里的源码包,直接解压在源码同级目录 ,然后运行 StartPHP-82.FPM.bat ,会开始监听 9000 端口
PHP文件放在 wwwroot 下,也可自行改变路径
包内 PHP8.2 已配置 ,自行下载需要了解PHP配置项