我遇到了这个问题
据我所知,加密/非加密websocket连接都依赖于代理服务器通过适当的头发送。
来自关于未加密websocket连接的文章
如果未加密的WebSocket流量在流向WebSocket服务器的过程中通过一个透明代理,那么实际上连接很可能会失败,因为浏览器不会
关于加密的web套接字连接
对于透明代理服务器,浏览器不知道代理服务器,因此不发送HTTP CONNECT方法。但是,由于有线通信是加密的,中间透明代理服务器可能只允许加密的通信通过,因此如果使用Web套接字安全,则WebSocket连接成功的可能性要大得多。
如果未加密的连接预计会失败
我很可能搞错了整件事,但我很想知道这是如何工作的。
值得注意的是,你提到的这篇文章是由一个为生产旨在解决这些问题的产品的公司工作的人写的。因此,作者可能有夸大问题程度的动机。
例如,作者说:
[透明代理]预计会删除某些标头,包括连接标头
事实并非如此。根据RFC2616:
“透明代理”是指不修改超出代理身份验证和标识要求的请求或响应的代理
当然,许多代理并不完全遵循RFC,因此使用加密连接仍然是一个好主意。
TLS加密是专门为防止中间服务器干扰您的流量而设计的。如果中间代理服务器导致安全WebSockets连接出现问题,那么您可能会遇到更大的问题,因为它还可能干扰其他安全通信,例如您与internet银行之间的连接。
在加密的连接中,代理看不到HTTP内容,所以他们只是简单地传递消息。但是在非加密连接中,代理可能会检查和更改HTTP消息(例如标头)(在某些情况下),因此在某些情况下,它们需要支持WebSocket,因为WebSocket-消息看起来不像HTTP消息(例如,没有HTTP标头)。
计算机网络基础 ip地址 为了使网络上的计算机能够彼此识别对方,每台计算机都需要一个IP地址以标识自己。 IPv4:32位,IPv6:64位 OSI七层参考模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 地址解析 地址解析是指将计算机的协议地址解析为物理地址,即MAC(Medium Access Control)地址,又称为媒体访问控制地址。通常,在网络上由地址解析协议(ARP)
问题内容: 我目前正在将API从C#转换为具有网络组件的Java。 C#版本似乎在其类使用期间保持输入和输出流以及套接字打开。 这样对吗? 请记住,该应用程序正在根据用户输入发送命令并接收事件,是否为每个“消息”打开一个新的套接字流更为明智? 我正在维护一个ServerSocket来监听服务器抛出的事件,但是我不确定为出站通信维护一个Socket和输出流是一个好主意。 我不太习惯套接字编程。与许多
我使用创建了一个服务器。之后,我使用创建了客户机,并连接到该服务器。 之后,我对InputStream做了“一些事情”,而OutputStream是从套接字对象中获取的。但是,我不太理解inputStream和outputStream。下面是我的简单代码: 结果将是:“Hello World”和“Hello StackOverflow”。 以下是服务器端代码: 我的问题是: > 当我使用时,我可以
问题内容: 我正在尝试使用针对Node.js的Bluebird库来兑现承诺。 下面是一个简单的示例,它无法正常运行。 我或者缺少诺言或Bluebird的一些(主要)概念。 在此先感谢您的帮助。 编辑: 根据来自jfriend00的反馈进行了修订(并正在工作的版本)。 问题答案: 为了正常工作,该函数必须是异步的,并且传递给该函数的最后一个参数必须是完成回调,而完成回调必须以其第一个参数作为错误参数
我用的是SpringMVC 4 Tomcat。我的应用程序用@ Autowired SimpMessagingTemplate得到了2个类(A和B)。每个类都有一个调用“convertAndSend”的线程。 A类发送一条由8个双字段和3个长字段组成的消息。它向大约500个主题发送消息,例如“/主题/价格. X”(其中X-一些随机字符串)。频率-在单个循环中每秒最多4次(每个主题)。 B 类发送一
终止TCP/IP连接的最佳方法是什么,该连接清理了系统上的开放套接字,但让远程方挂起。那就是我想要关闭一个插座的方式,对我来说是最低的成本,但对他们来说是最高的成本。 @尼古拉斯·威尔逊: 使用tcprepair似乎是个好主意。当套接字在TCP_REPAIR模式下关闭时,不会发送FIN或RST数据包。远程插座挂起。我要去试试看然后回去报告。下面是我的(未经测试的)代码: 只是不要关闭它。打开的插座