gpt4 book ai didi

javascript - 使用node.js连接socket.io

转载 作者:行者123 更新时间:2023-12-03 06:36:51 25 4
gpt4 key购买 nike

我能够使用node.js使socket.io完美工作,但我无法传递变量(user_id),因为我不在任何请求中连接socket.io。

var express = require('express');
var router = express.Router();

var server = require("http").Server(express);
var io = require("socket.io")(server);
server.listen(3001);
io.on('connection', function(client) {
client.on('order_'+userId, function(data) { // how to get user_id here? I can't put this within any endpoint
io.emit('order_'+user_id,data);
});
});

router.get('/', function(req, res) {
//I can get my userId here, I'm using passport session

console.log(res.user.id)
})

需要有socket.io和node.js经验的人的帮助。

最佳答案

我认为你最好使用某种身份验证方法(发送用户 ID 作为参数并不真正安全,你应该发送某种可以验证的 token ,JWT 将是一个不错的选择)。

无论如何,您始终可以发送订单事件,并在随事件传递的数据中传递用户 id 参数:

服务器:

  client.on('order', function(data) { 
io.emit('order_' + data.user_id);
});

客户:

  socket.emit('order', {user_id:1});

关于javascript - 使用node.js连接socket.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38160701/

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