HTML5 Web套接字如何与代理服务器交互

时间:2015-09-24 10:14:30

标签: javascript proxy websocket push-notification

我们开始在客户端/浏览器和FE服务器之间开发推送解决方案 - FE服务器是用java编写的。 我现在正在学习这个领域,并了解到目前有四种主要技术可供参考: What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet?

我正在尝试深入理解SSE和Web套接字技术,但是当我遇到websockets时,我发现自己很困惑。

在很多文章中我都能找到解释为什么网络套接字是我应该考虑的技术,如果我正在寻找实时,双向通信但在另一端我看到websockets存在问题和代理服务器和安全性。 我发现的最后一篇文章是从2010年开始 - http://www.infoq.com/articles/Web-Sockets-Proxy-Servers

但我猜情况从2010年开始有所改变 - 有人可以指出我对这些问题的更新解决方案吗? 指出我应该注意的其他事情?

1 个答案:

答案 0 :(得分:0)

真的不多。

某些旧代理仍未发现WebSockets连接。他们删除Upgrade标头(因为它在Connection中指示)导致HTTP协商失败(或仅获取HTTP 200而不是HTTP 101)。其他代理尝试缓存响应并将其重用于其他客户端,这在WebSockets中没有任何意义(当响应具有错误的sec-websocket-accept标头值时,客户端会注意到该问题)。

代理无处不在,由您的ISP或您的客户ISP提供,并且您无法做任何事情来避免它们。

解决方案是始终使用wss://。那样代理不是问题。