Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从socket.io websocket传递/访问PHPSESSID cookie值?_Javascript_Node.js_Cookies_Websocket_Socket.io - Fatal编程技术网

Javascript 如何从socket.io websocket传递/访问PHPSESSID cookie值?

Javascript 如何从socket.io websocket传递/访问PHPSESSID cookie值?,javascript,node.js,cookies,websocket,socket.io,Javascript,Node.js,Cookies,Websocket,Socket.io,当客户端尝试连接到socket.io websocket时,我需要传递PHPSESSID cookie的值 我尝试使用socket.handshake.headers,但由于某种原因,PHPSESSID没有被传递 我试图发出一个连接事件来发送cookie值。但我似乎还是做不到 这就是我所做的 这是我的websocket服务器代码 var env = require('./config'); var app = require('express')(); var server = require

当客户端尝试连接到socket.io websocket时,我需要传递PHPSESSID cookie的值

我尝试使用
socket.handshake.headers
,但由于某种原因,PHPSESSID没有被传递

我试图发出一个连接事件来发送cookie值。但我似乎还是做不到

这就是我所做的

这是我的websocket服务器代码

var env = require('./config');

var app = require('express')();
var server = require('http').Server(app);

var io = require('socket.io')(server);

var clients = [];

server.listen(env.socket.port, env.socket.host, function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('Websocket running at http://%s:%s', host, port);
});

app.get('/', function (req, res) {
    res.send('Welcome!');
});

io.on('connection', function (socket) {

    //console.log(socket.handshake.headers);
    clients.push(socket);

    socket.on('connect', function(msg){
        console.log('PHPSESSID: ' + msg);
    });

    socket.on('chat', function(msg){
        console.log('message: ' + msg);
    });

    socket.emit('chat', { hello: 'world' });
});
这是我的客户代码

<script>

    $(function(){
       var socket = io.connect('https://10.0.4.18:8020');

       socket.emit('connect', { 'sessionId' : '<?php echo $_COOKIE['PHPSESSID']; ?>' });

      $('#f').click(function(e){
            e.preventDefault();

            if($('#m').val() == '')
                return;

            socket.emit('chat', $('#m').val());
            $('#m').val('');
            return false;
      });

      socket.on('chat', function(msg){
        $('#messages').append($('<li>').text(msg));
      });
    });

</script>

$(函数(){
var socket=io.connect('https://10.0.4.18:8020');
emit('connect',{'sessionId':'''});
$('#f')。单击(函数(e){
e、 预防默认值();
如果($('#m').val()='')
返回;
emit('chat',$('#m').val());
$('m').val('');
返回false;
});
socket.on('chat',函数(msg){
$(“#消息”).append($(“
  • ”).text(msg)); }); });
  • 我希望将带有sessionId的json字符串打印到服务器控制台


    如何从websocket传递/访问PHPSESSID值?

    如果您希望在节点和PHP之间共享会话ID,则会出现一个快速搜索结果:@TbWill4321谢谢?我不能将cookie值传递给我的websocket吗?我的会话存储在MySQL数据库中。因此,如果我可以传递这些值,我将在nodejs中执行MySQL查找并验证会话