2014-12-14 4 views
1

Я использую socket.io V1.2.1 &, пытаясь следовать за official Socket.io authorization wiki page, но, похоже, он немного устарел (может быть написан для версии 0.9), поэтому после внесения нескольких изменений, вот мой код для запуска моего сервера & настройки аутентификации:Не удается добавить параметр установления связи при аутентификации socket.io

server = http.createServer(app) 
io = require('socket.io')(server) 
global.io = io 
global.liveTopicIo = io.of "/live-topic" 
server.listen(3100) 
io.set 'authorization', (handshakeData, callback)-> 
    # doing some authentication logic here 
    # & reading 'currentUser' 
    if isAuthenticated 
     handshakeData.user = currentUser 
     callback null, true 
    else 
     callback null, false 

liveTopicIo.on "connection", (socket) -> 
    console.log 'user: ', socket.handshake.user 
    console.log 'a user connected' 

предыдущий код печатает следующий

пользователя не определено

подключен пользователь

Итак, почему я не могу добавить параметры к данным handshake? & Как исправить это, чтобы добавить текущего пользователя?

ответ

0

на основе the migration notes from 0.9 to 1.x, разрешение не должно зависеть от функции set больше, но вместо этого должен быть нормальный экспресс промежуточного слоя, так что это должно быть так:

liveTopicIo.use (socket, next)-> 
    # doing some authentication logic here based on the info 
    # from socket.handshake & reading 'currentUser' 
    if isAuthenticated 
     socket.handshake.user = currentUser 
     next() 
    else 
     next(new Error("Access Denied")) 

 Смежные вопросы

  • Нет связанных вопросов^_^