【问题标题】:Why do websockets and HTTP conflict?为什么 websockets 和 HTTP 会冲突?
【发布时间】:2021-11-08 08:46:41
【问题描述】:

我正在尝试在同一主机上使用同一端口。

Websocket URL
ws://aaa.bbb.cc.ddd:eeee/ws


HTTP URL
http://aaa.bbb.cc.ddd:eeee/docs

但是当我打开“http://aaa.bbb.cc.ddd:eeee/docs”页面时,我收到了这个错误信息。

Failed to open a WebSocket connection: invalid Connection header: keep-alive.
You cannot access a WebSocket server directly with a browser. You need a WebSocket client.

Http 不起作用。但是,websocket 连接正常。

我该如何解决这个问题?

【问题讨论】:

    标签: http websocket port conflict


    【解决方案1】:

    WebSocket 协议不是 HTTP 协议。

    虽然 WebSocket 协议确实使用 HTTP 请求启动新连接,但它会迅速将连接升级到完整的 WebSocket(这需要在初始请求中使用 Connection: upgrade 标头,而不是 Connection: keep-alive)。

    您不能使用普通网络浏览器直接与 WebSocket URL 通信,因为这样的浏览器不知道如何完成升级,更不用说处理任何 WebSocket 数据包了。因此,您必须使用有效的 WebSocket 客户端(例如现代浏览器向客户端脚本公开的 WebSocket API)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      • 1970-01-01
      • 2020-03-04
      • 1970-01-01
      • 2015-08-25
      • 2019-10-11
      相关资源
      最近更新 更多