3

它说websocket

“使用 ws(不安全)或 wss(安全)协议通过单个 TCP 套接字进行通信......”

这是否意味着客户端-服务器只需要一次握手?但是我每秒都在 NodeJs 控制台中看到握手。这些是什么?

4

1 回答 1

1

每当用户执行使用 websocket 的 javascript 时,都需要进行握手。Websockets 不能在页面访问之间重用。当用户关闭或离开页面时,它们会自动关闭。当用户打开一个新选项卡时,将创建第二个套接字,这将需要一个新的握手。

当您的 NodeJs 应用程序是客户端位于 HTML 页面上的 Web 应用程序时,只要用户请求该页面,就会重新建立连接。因此,当用户浏览您的网站并且每个 HTML 页面上都嵌入了一个使用 websocket 的 javascript 时,您将看到每次点击后都会执行一次新的握手。

当您一直看到新的握手时,尽管只有一个用户一直停留在同一页面上,那么您的应用程序可能确实有问题。它是否可能一直创建新的套接字,尽管它可以重用现有的套接字?(每个都new WebSocket意味着一个新的 websocket 连接意味着正在执行一个新的握手)。

于 2012-11-16T15:13:39.863 回答