Socket.io 不会连接到 next.js 环境变量
Socket.io won't connect with next.js environment variable
我有一个工作环境变量设置,但 socketio 无法连接
在.env.local,我有:
HOST=http://localhost:8080
然后在 index.js::
console.log(process.env.HOST)
const socket = io(process.env.HOST)
它打印本地主机,但无法连接。我也试过将 link 括在引号中,但这不起作用。
只有这个配置有效
const socket = io('https://localhost:8080')
您在客户端代码中使用该代码吗?如果是这样,那就是问题所在:
默认情况下,nextjs 使环境变量仅在服务器端环境中可用(因此您不会不小心将秘密暴露给客户端)。
为了向客户端公开某些变量,您必须在它们前面加上 NEXT_PUBLIC_
像这样:
NEXT_PUBLIC_HOST=http://localhost:8080
和
console.log(process.env.NEXT_PUBLIC_HOST)
const socket = io(process.env.NEXT_PUBLIC_HOST)
我有一个工作环境变量设置,但 socketio 无法连接
在.env.local,我有:
HOST=http://localhost:8080
然后在 index.js::
console.log(process.env.HOST)
const socket = io(process.env.HOST)
它打印本地主机,但无法连接。我也试过将 link 括在引号中,但这不起作用。
只有这个配置有效
const socket = io('https://localhost:8080')
您在客户端代码中使用该代码吗?如果是这样,那就是问题所在:
默认情况下,nextjs 使环境变量仅在服务器端环境中可用(因此您不会不小心将秘密暴露给客户端)。
为了向客户端公开某些变量,您必须在它们前面加上 NEXT_PUBLIC_
像这样:
NEXT_PUBLIC_HOST=http://localhost:8080
和
console.log(process.env.NEXT_PUBLIC_HOST)
const socket = io(process.env.NEXT_PUBLIC_HOST)