定制 postuf/socks-proxy-async 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

postuf/socks-proxy-async

最新稳定版本:v0.3.1

Composer 安装命令:

composer require postuf/socks-proxy-async

包简介

Lightweight asynchronous socks proxy for PHP

README 文档

README

Asynchronous SOCKS5 client library

Gitpod ready-to-code

codecov

Requirements

  • PHP 7.4+
  • Composer
    • ext-sockets

Quick start

First of all, add library to your app user composer:

composer require postuf/socks-proxy-async

How it works

Say, you have a socket and an event loop:

$socket = new SocketAsync(/* ... */);
while(true) {
  // process events
  if (!$socket->ready()) {
    $socket->poll();
  } else {
    // your logic ...
  }
}

We create socket, set socket_set_nonblock, when socket is connected, isReady flag is set. Internal logic is organized as state machine. You can extend it and add more steps, so that only $socket->poll() is called on event loop, then you just check the state and process received updates.

Testing

Tests require working proxy and http server to be up and running, use node/proxy.js to start proxy, node/http/start.sh (./start.sh within its subdir) to start http server. By default, http server runs on port 8080, proxy occupies port 1080, tests use these ports.

DNS-related tests require dns server (node/named.js) to be up and running.

Make commands

  • make all - run all checks

  • make test - run tests

  • make cs - run codesniffer checks

  • make psalm - run psalm checks

  • make stan - run stan checks

  • make cs - run stan and psalm checks

  • make get-security - get security checker

  • make security - run security checker

统计信息

  • 总下载量: 9.83k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 2
  • Forks: 8
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-12-25