CNode

socket.io问题

Nnode-rookie发布于12 年前最后回复12 年前4 回复5404 浏览0 收藏

io.set('authorization', function(handshakeData, accept) { 设置了session 但是 io.sockets.on('connection', function (socket) { 这里的soket的handshake里面没有session信息

为什么?大神帮忙下

查看回复

回复 (4)

W
wuzeru#1·12 年前

你应该要用io.get('authorization')才能获得把

J
Jaha1986#2·12 年前

不是应该socket去set和get吗

//服务端 var io = require('socket.io').listen(80);   io.sockets.on('connection', function (socket) {     socket.on('set nickname', function (name) {         socket.set('nickname', name, function () { socket.emit('ready'); });     });       socket.on('msg', function () {         socket.get('nickname', function (err, name) {             console.log('Chat message by ', name);         });     }); });

J
Jaha1986#3·12 年前

//客户端

H
hwzhou#4·12 年前

你那个实现应该是0.x里面可以用。

你是用的socket.io最新的1.x版本吧,这个版本确实不能在handshake里面存自定义数据了。你可以写一个专门的函数,每次响应事件的时候(connection、disconnect等)从handshake.headers.cookie去获取Session ID,再从session store里面获取对应的session。

参与回复
登录后即可参与回复。登录