//客户端
<script>
var socket = io.connect(‘http://localhost’);
socket.on(‘connect’, function () {
socket.emit(‘set nickname’, confirm(‘What is your nickname?’));
socket.on(‘ready’, function () {
console.log(‘Connected !’);
socket.emit(‘msg’, confirm(‘What is your message?’));
});
});
</script>
你应该要用io.get(‘authorization’)才能获得把
不是应该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); }); }); });
//客户端 <script> var socket = io.connect(‘http://localhost’); socket.on(‘connect’, function () { socket.emit(‘set nickname’, confirm(‘What is your nickname?’)); socket.on(‘ready’, function () { console.log(‘Connected !’); socket.emit(‘msg’, confirm(‘What is your message?’)); }); }); </script>
你那个实现应该是0.x里面可以用。
你是用的socket.io最新的1.x版本吧,这个版本确实不能在handshake里面存自定义数据了。你可以写一个专门的函数,每次响应事件的时候(connection、disconnect等)从handshake.headers.cookie去获取Session ID,再从session store里面获取对应的session。