我对node js和web sockets还不熟悉。我正在尝试使用node js中的ws创建一个Web Socket。我有两个问题:
1.我确实有一个想法,CORS是不可用的网络套接字,但有没有一种方法,我仍然可以使他们?
1.如何扩展代码以实现客户端身份验证?目前,我可以使用“wss”,但我想使用证书验证客户端。我怎么能这么做呢?
Server.js代码
const { WebSocketServer } = require('ws');
const { createServer } = require('https');
const { readFileSync } = require('fs');
function startServer() {
const server = createServer({
cert: readFileSync('server_cert.pem'),
key: readFileSync('server_key.pem'),
});
const wss = new WebSocketServer({ noServer: true });
server.on('upgrade', (request, socket, head) => {
authenticate(request, (err, client) => {
if (err || !client) {
socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n');
socket.destroy();
return;
}
wss.handleUpgrade(request, socket, head, (ws) => {
wss.emit('connection', ws, request, client);
});
});
});
server.listen(7070);
}
字符串
有人能给我指路吗?
2条答案
按热度按时间k5hmc34c1#
我使用以下服务器端代码实现了CORS验证和基于证书的客户端身份验证:
字符串
ogq8wdun2#
我想你已经研究过这个主题了,但也许其他人会发现这个帖子。正如Tomalak多次提到的,CORS不会影响WebSockets通信。在这里你可以找到一篇优秀的文章,它彻底解释了CORS是如何工作的,以及为什么它不会影响WebSockets:
https://dev.to/pssingh21/websockets-bypassing-sop-cors-5ajm
干杯!