相关疑难解决方法(0)

Node.js + Socket.io | 在服务器上设置自定义标头

我使用 Helmet 和 Express 从服务器端设置相当多的安全 HTTP 标头。当在 Node.js 应用程序顶部渲染客户端页面时,使用以下命令,这做得很好:

\n\n
var app = express();\napp.use(helmet());\n..\nres.render("pages/index", data);\n
Run Code Online (Sandbox Code Playgroud)\n\n

索引页上的所有资源都将具有 Helmet 标题。不幸的是,socket.io 有自己的标头管理。因此,/socket.io/ 之后的任何内容都将具有不安全/其自己的标头。例如这里:

\n\n
<https_path>/socket.io/socket.io.js\n<https_path>/socket.io/?EIO=3&transport=polling&t=Lj4CFnj&sid=ILskOFWbHUaU6grTAAAA\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此,我想手动为所有 socket.io 项目设置自定义标头。

\n\n

这就是我需要 socket.io 的方式(仅摘录):

\n\n

/src/app.js

\n\n
var express = require("express");\nvar sio = require("socket.io");\nvar app = express();\nvar io = require("./../lib/io.js").initialize(app.listen(REST_PORT, () => {\n    logger.info("Application ready on port " + REST_PORT + " . Environment: " + NODE_ENV);\n}));\n
Run Code Online (Sandbox Code Playgroud)\n\n

/lib/io.js

\n\n
exports = module.exports = {};\nvar sio = require("socket.io");\nexports.initialize = function(server) {\n    var options …
Run Code Online (Sandbox Code Playgroud)

javascript websocket node.js socket.io engine.io

3
推荐指数
1
解决办法
9238
查看次数

标签 统计

engine.io ×1

javascript ×1

node.js ×1

socket.io ×1

websocket ×1