连接https服务器时是否需要设置`secure: true`?

问题描述 投票:0回答:1

我有一个 Nodejs 后端,我的前端通过 Nginx 代理到该后端,Nginx 负责路由所有流量。我正在使用 Let's Encrypt,并且可以通过访问它来访问服务器 (

https://example.com
)。我还设置了负载平衡,通过“最少连接”协议将流量路由到上游。

在前端,我像这样连接

socket.io

import { io, ManagerOptions, SocketOptions } from 'socket.io-client';

const otherOpts = {};
const socket = io('https://example.com', {
    ...otherOpts,
    secure: false,
} as Partial<ManagerOptions & SocketOptions>);

这按原样工作,但在当前情况下,我需要

secure: true
做什么?这就是决定
ws
vs
wss
的条件吗?客户端已经通过 https 连接,所以我可以安全地忽略这个吗?

javascript typescript socket.io
1个回答
0
投票

secure: true
用于确保安全的 WebSocket 连接 (wss://),而不是非安全的连接 (ws://)。

就像您提到的,当我们在与客户端连接时使用 HTTPs 时,WebSocket 已经是安全的了

wss://
,因为它是在与 HTTPs 相同的安全上下文下使用的。

所以,由于 HTTPs 连接,它已经默认是安全的,所以你不需要设置

secure: true

您可以这样编写代码:

import { io } from 'socket.io-client';

const socket = io('https://yourClientURL.com');
© www.soinside.com 2019 - 2024. All rights reserved.