3.2.13 • Published 1 year ago

ipipe v3.2.13

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

代理隧道 ipipe

打包注意:

webpack打nodejs包时, 需要配置, browser环境没有限制
    作用是ipipe不直接打入包里, (ipipe有调用napi代码, 直接打包后会出现不能正常运行)
    externals: {
      "ipipe": "ipipe",
    },

用例 1 axios 使用代理

    import IPipe from "ipipe";
    import axios from "axios";  
    let proxy = {
        host: "127.0.0.1",
        port: 1082,
        protocol: 'socks5', //socks5, http
        //username: 'user',
        //password: '12345'
    };
    //测试代理
    async function testProxy(proxy: { host: string; port: number }) {
        let info = await axios({
            url: "http://ifconfig.me/ip",
            timeout: 15000,
            method: "get",
            proxy: {
                host: proxy.host,
                port: proxy.port,
                /**auth: {
                    username: "admin",
                    password: "123456",
                }, */
            },
        })
            .then((res) => res.data)
            .catch((err) => console.error("get proxy ip error", err.stack, err.message));
        console.info("proxy ip", info);
    }
    (async()=>{
        //step1
        //===== 创建接入客户端, 默认可以通过http和socks5协议接入代理
        const ipipe = new IPipe(); //初始化实例
        await ipipe.createAcceptServer(4321); //创建接入服务kk, 4321 端口是本地接入的端口
        ipipe.registerProxy(proxy);//注册代理服务器

        //step2 可以跳过, 这里是模拟目标代理服务器
        const ipipe2 = new IPipe({
            isDirect: true, //不能少这个参数
        });
        await ipipe2.createAcceptServer(proxy.port); //创建接入服务

        //测试代理
        testProxy({ host: "127.0.0.1", port: 4321 });
    })();

用例 2 使用 peer

    import IPipe from "ipipe";

    const peerServer = {
        port: 11111,
        host: "127.0.0.1",
    };
    /**
    * 启用服务端代码
    * 只能在nodejs环境运行
    */
    async function server() {
        const ipipe = new IPipe({
            isDirect: true,
            enablePeerServer: true, //启用peer隧道通信服务
            auth: async ({username, password}) => { //用于验证用户名和密码
                return true;
            },
        });
        //创建 accept socket接入服务
        await ipipe.createAcceptServer(peerServer.port, "0.0.0.0", () => {});
        //创建 peer 2 peer 点对点接入服务(p2p)
        await ipipe.createPeerAcceptServer({
            peer: "peer-proxy-server", //节点名, 不能包含 点(.)
            server: `ws://${peerServer.host}:${peerServer.port}/peer`,
            token: "234",
        });
    }
    /**
    * 启用客户端代码, 并发起代理请求
    * 可以在nodejs,浏览器环境运行
    */
    async function client() {
        const ipipe = new IPipe({});
        ipipe.createPeerAcceptServer(
            {
                peer: "peer-client-node", //节点名, 不能包含 点(.)
                server: `ws://${peerServer.host}:${peerServer.port}/peer`,
                token: "234",
            },
            async () => {
                let res = await ipipe
                    .fetch("https://ifconfig.me/ip", {
                    //http://www.people.com.cn/img/2020peopleindex/js/jquery-3.7.0.min.js
                    agent: {
                        host: "peer-proxy-server",
                        port: 0,//如果host是佩尔, port无用
                        username: "",//传入用户名和密码
                        password: "",
                    },
                    })
                    .catch((err) => {
                    console.info("test fetch peer error", err);
                    });
                if (!res) return;
                let txt = await res.text();
                console.info("=================test fetch peer<", res.status, txt.length, txt, ">");
            },
        );
    }

    (async () => {
        await server();//启用服务端
        await client();//启用客户端
    })();

3.2.13

1 year ago

3.2.12

1 year ago

3.2.11

1 year ago

3.2.10

1 year ago

3.2.9

1 year ago

3.2.8

1 year ago

3.2.7

1 year ago

3.2.6

1 year ago

3.2.5

1 year ago

3.2.4

1 year ago

3.2.3

1 year ago

3.2.1

1 year ago

3.2.0

1 year ago

3.1.34

1 year ago

3.1.33

1 year ago

3.1.32

1 year ago

3.1.31

1 year ago

3.1.30

1 year ago

3.1.29

1 year ago

3.1.28

1 year ago

3.1.27

1 year ago

3.1.26

1 year ago

3.1.25

1 year ago

3.1.24

1 year ago

3.1.23

1 year ago

3.1.22

1 year ago

3.1.21

1 year ago

3.1.20

1 year ago

3.1.19

1 year ago

3.1.18

1 year ago

3.1.17

1 year ago

3.1.16

1 year ago

3.1.15

1 year ago

3.1.14

1 year ago

3.1.13

1 year ago

3.1.12

1 year ago

3.1.11

1 year ago

3.1.10

1 year ago

3.1.9

1 year ago

3.1.8

1 year ago

3.1.7

1 year ago

3.1.6

1 year ago

3.1.5

1 year ago

3.1.3

1 year ago

3.1.2

1 year ago

3.1.1

1 year ago

3.1.0

1 year ago

3.0.9

1 year ago