zoukankan      html  css  js  c++  java
  • 基于Yarp的http内网穿透库HttpMouse

    简介

    前几天发表了《基于Yarp实现内网http穿透》,当时刚刚从原理图变成了粗糙的代码实现,项目连名字都还没有,也没有开放源代码。在之后几天的时间,我不断地重构,朝着“可集成、可二次开发”的要求来完善项目,并项目取名为HttpMouse,象征着穿越能力很强的老鼠,同时把代码开源在Github/HttpMouse上。

    原理

    image

    开发库

    HttpMouse以库的形式提供给开发者,让开发者可以构建符合自身业务的http内网穿透系统。相比提供编译好的二进制可执行文件,库的方式更灵活,对于没有特殊定制要求的项目,samples里的例子就可以直接满足。

    HttpMouse

    HttpMouse库做为服务端库,基于Yarp开发与扩展,遵循Yarp的设计,将自身设计为asp.netcore的中间件。开发者除了可以使用asp.netcore生态里丰富的其它功能,还可以继续使用Yarp灵活的配置功能。

    HttpMouse在Yarp之上实现了以下功能:

    • 可重写的路由提供者;
    • 可重写的集群提供者;
    • 可重写的内网客户端连接认证者;
    • 内网客户端连接管理功能;
    • 反向连接管理功能;
    • 配置反向连接的ForwarderHttpClientFactory;

    HttpMouse.Client

    HttpMouse.Client库做为客户端库,其作为公网的HttpMouse和局域网的http服务的通讯桥梁,它既是公网HttpMouse的客户端,也是局域网http服务的客户端。

    HttpMouse.Client的集成方式可以如下:

    • 独立部署,与局域网http服务不同进程或不同机器
    • 集成部署,在局域网http服务器直接引用HttpMouse.Client

    StarMe

    开源不容易,尤其是.net生态,以下是博主开源的其它一些项目,欢迎来start

    项目 简介
    WebApiClient 可扩展的声明式的Http客户端库
    Influxdb2.Client Influxdb2读写性能最快的dotnet客户端
    FastGithub github定制版的dns服务,解析github最优的ip
    PredicateLib 谓词筛选表达式Expression<Func<T, bool>>的一个扩展库
  • 相关阅读:
    ios中从相册:相机中获取图片信息
    ios中图片的绘画和截图
    UIPickView的简单介绍
    封装类的方式访问数据库(封装字符串、json)
    ajax用户名案例(重点)
    mysql中一对一,一对多,多对多关系
    会话控制:SESSION,COOKIE
    ajax简单案例:返回json型
    ajax同步,异步
    ajax简单案例:字符串返回类型
  • 原文地址:https://www.cnblogs.com/kewei/p/15000564.html
Copyright © 2011-2022 走看看