zoukankan      html  css  js  c++  java
  • http 双向通信之port映射

    新产品开发了近2-3个月,给到客户做试用的时候,发现一个开发这么久从未考虑到的一个通信问题,mark下,下次开发同类产品的时候长点记性了. 

    产品由client与服务端两部分组成,client与服务端须要相互通信,协议採用http,两边各开一个port,用于http请求响应.因为开发的时候都在同一个网段进行測试,所以没有发现不论什么产品上的问题.到了客户那边才发现客户环境是部署在不同网段的,这就带来了一系列port映射的问题. 

    所谓port映射能够理解为路由地址转换(nat),网段A的机子要訪问网段B的机子,中间必需要有个路由装置C(路由器,linuxserver等),C将A机子发给B机子包的源地址和源port替换成自己的地址和port,然后由C跟B通信,B响应请求给C,C又将响应内容还给A. 这就达到了不同网段之间A,B之间的通信. 

    刚接触到这个问题的时候,心想这也不是产品上的问题,就让客户自己加入port映射呗,由于不同网段避免不了的呀. 客户的反馈是 client向服务端的port影射他们能够自己负责配置,可是服务端向client的映射不给配, 一是太麻烦,二是client不让开port通信.  客户就是上帝,既然这么要求了,我们也没用办法仅仅有改通信方式.之前是client与服务端双向通信,所以跨网段就须要两边都配置port映射.  更改之后就变成单向通信,client仅仅能向服务端发请求并接受服务端响应,服务端不能向client发请求.服务端假设要获取到client的信息,仅仅能通过client不停轮询的向服务端去提供信息.这样就能够保证仅仅有client须要配置port映射,服务端不须要.

    总结一下, http双向通信在同一网段内基本没有什么问题,可是在不同网段port映射须要配置两遍比較麻烦(前提是客户介意),採用单向轮询port映射配置会相对轻松点.







  • 相关阅读:
    php数据库操作命令精华大全
    使用phpnow本地搭建Discuz!如何实现伪静态
    最基础的PHP分类查询程序
    p​h​p​面​试​题​笔​试​题​ ​比较有用
    kolla单节点部署openstack
    Qt 编译方式之 qbs
    Qt画图
    Qt拖拽事件
    POSTMAN学习和使用体会
    HandlerExceptionResolver的使用,返回前端相对友好的异常信息
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4056601.html
Copyright © 2011-2022 走看看