0

我用 JavaScript 编写了一个普通的 WebSocket 客户端,它通过 8080 端口连接到本地主机并发送“ hello server ”。

我的服务器是使用标准套接字包在 Python 中编写的。当我使用 连接到它时WebSocket,服务器会收到一个 HTTP 请求:

GET / HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: 127.0.0.1:8080
Origin: http://127.0.0.1:3030
Pragma: no-cache
Cache-Control: no-cache
Sec-WebSocket-Key: g3y2hDw5WpZYKUwIrsGYaw==
Sec-WebSocket-Version: 13
Sec-WebSocket-Extensions: x-webkit-deflate-frame

...并且它没有收到应该由连接发送的原始“hello server”消息。WebSocket

我很困惑; 常规套接字和 WebSockets 不是一回事吗?为什么我收到的是 HTTP 请求而不是原始消息?

4

1 回答 1

0

简而言之,没有网络套接字不仅仅是套接字。它们是 TCP 之上的一种新的类似 http 的协议。请查看http://en.wikipedia.org/wiki/WebSocket以获得简要概述或 RFC https://www.rfc-editor.org/rfc/rfc6455了解详细信息。

于 2013-01-08T07:47:43.067 回答