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

时间:2015-09-14 21:17:10

标签: 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('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>

我希望将带有sessionId的json字符串打印到服务器的控制台。

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

0 个答案:

没有答案