易语言资源网 - 做最全的易语言资源下载社区
精易论坛授权登录

易语言与 PHP Fastcgi 方式通信,组包/解包全解析源码   [复制链接]

    2023-07-17 09:02:06
    高级教程源码
    易语言资源网
    1211 次浏览
    来源链接

源码仅调用 精易模块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配置项




点我下载 (已有 25 次下载)

引用模块


源码文件名 模块文件名
phpfpm.e
鱼刺类_多线程应用.ec
精易模块.ec


引用支持库


源码文件名 支持库文件名 支持库标识
phpfpm.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
特殊功能支持库 3.1 A512548E76954B6E92C21055517615B0
数据结构支持库 2.0 0AFF5F28B2CB42ce906AA27D6E485457
常量支持库 1.6 9DEDA17547CF40e085B7C8919B1800AF


[错误报告]   上一篇:HP-Soket的文件回发...     下一篇:HP-Socket简单实用 tcp-pa...