postuf / socks-proxy-async
轻量级 PHP 异步 socks 代理
v0.3.1
2022-01-13 10:51 UTC
Requires
- php: ^8.0
- ext-sockets: *
Requires (Dev)
- doctrine/coding-standard: ^9.0
- phpstan/phpstan: ^0.12.86
- phpunit/phpunit: ^9.0
- psalm/phar: ^4.7
- squizlabs/php_codesniffer: ^3.6
This package is auto-updated.
Last update: 2024-09-16 05:52:28 UTC
README
异步 SOCKS5 客户端库
要求
- PHP 7.4+
- Composer
- ext-sockets
快速开始
首先,将库添加到您的应用用户 composer
composer require postuf/socks-proxy-async
工作原理
假设,您有一个套接字和一个事件循环
$socket = new SocketAsync(/* ... */);
while(true) {
// process events
if (!$socket->ready()) {
$socket->poll();
} else {
// your logic ...
}
}
我们创建套接字,设置 socket_set_nonblock,当套接字连接时,isReady
标志被设置。内部逻辑以状态机形式组织。您可以扩展它并添加更多步骤,这样在事件循环中就只需调用 $socket->poll()
,然后您只需检查状态并处理接收到的更新。
测试
测试需要可工作的代理和 http 服务器运行,使用 node/proxy.js
启动代理,使用 node/http/start.sh
(./start.sh
在其子目录中) 启动 http 服务器。默认情况下,http 服务器在端口 8080 上运行,代理占用端口 1080,测试使用这些端口。
与 DNS 相关的测试需要 DNS 服务器 (node/named.js
) 运行。
构建命令
-
make all - 运行所有检查
-
make test - 运行测试
-
make cs - 运行 codesniffer 检查
-
make psalm - 运行 psalm 检查
-
make stan - 运行 stan 检查
-
make cs - 运行 stan 和 psalm 检查
-
make get-security - 获取安全检查器
-
make security - 运行安全检查器