gpt4 book ai didi

node.js - 消息上的 Express websockets 获取 cookie 信息

转载 作者:太空宇宙 更新时间:2023-11-03 23:28:23 26 4
gpt4 key购买 nike

我有一个快速网络套接字应用程序。

onmessage函数中,我想访问发送消息的客户端的cookie。

原因是我正在制作游戏并且我有用户登录。我需要检查 cookie 的名称,以便控制正确的播放器。

这是我到目前为止所得到的:

var express = require('express');
var expressWs = require('express-ws');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var app = express();

app.use(cookieParser('secretkey123'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}))

expressWs = expressWs(app);

app.get('/', function(req, res) {
// stuff for logging in
})

app.post('/', function(req, res) {
// stuff for logging in
})

app.get('/logout', function(req, res) {
res.clearCookie('name');
res.redirect('/');
// more stuff for logging in
})

app.ws('/ws', function(ws, req) {
ws.on('open', function() {
// how do I check when a connection is opened?
})
ws.on('message', function(msg) {
// who sent the message? how do I get the cookie info to check the user who send it?
})
ws.on('close', function() {
// the've disconnected
})
})

var server = app.listen(8000, function () {
var host = server.address().address
var port = server.address().port
})

这可能吗?

另外,当 websocket 连接打开时,我应该在哪里检查?

我尝试了“打开”事件,但它似乎不起作用。

感谢您提前提供的帮助!

最佳答案

我知道怎么做了!

我忘记了 req 参数可以在其他函数内部访问。

这意味着在消息功能中您可以执行以下操作:

ws.on('message', function(msg) {
req.cookies.username //do stuff
});

连接打开代码可以在设置任何事件之前完成:

app.ws('/ws', function(ws, req) {
// connection open code here
ws.on('message', function(msg) {
// connection message code here
})
})

关于node.js - 消息上的 Express websockets 获取 cookie 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41193129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com