Socket.io 验证
发布于 2年前 作者 izon90 1064 次浏览

客户端:index.html

<html>
<head>
    <script src="http://localhost:3000/socket.io/socket.io.js" type="text/javascript"></script>
    <script type="text/javascript">
        tick = io.connect('http://localhost:3000/');
        tick.on('data', function (data) {
            console.log(data);
        });

        tick.on('error', function (reason){
          console.error('Unable to connect Socket.IO', reason);
        });

        tick.on('connect', function (){
          console.info('successfully established a working and authorized connection');
        });
    </script>
</head>
<body>
    Open the browser console to see tick-tocks!
</body>
</html>

设置Express

var app = express();

app.configure(function () {
    app.use(express.cookieParser());
    app.use(express.session({secret: 'secret', key: 'express.sid'}));
});


app.get('/', function (req, res) {
    res.sendfile(__dirname + '/index.html');
});

server = http.createServer(app)
server.listen(3000);

设置Socket.IO

io = io.listen(server);

io.set('authorization', function (handshakeData, accept) {

if (handshakeData.headers.cookie) {

handshakeData.cookie = cookie.parse(handshakeData.headers.cookie);

handshakeData.sessionID = connect.utils.parseSignedCookie(handshakeData.cookie['express.sid'],     'secret');

if (handshakeData.cookie['express.sid'] == handshakeData.sessionID) {
  return accept('Cookie is invalid.', false);
}

} else {
    return accept('No cookie transmitted.', false);
} 

accept(null, true);
});
1 回复

能讲下 做什么用的吗

回到顶部