2011-08-13 46 views
0

我試圖將client.sessionId轉換爲我的變量Response.UserID的值,我得到的只是我的回覆中的NaN。我已經嘗試了一些東西,如toString,但仍然得到NaN或[全局對象]有沒有其他人試圖做到這一點?socket.io將userId分配給sessionId

下面是一些示例代碼..

socket.on('connection', function(client){ 
    // Success! Now listen to messages to be received 
    client.on('message',function(event){ 
     var Response = JSON.parse(event); 
     if(Response.UserID == null){ 
      client.broadcast(event); 
      console.log('Received message from client!',event); 
     } 
     else{ 
      console.log('Received message from client!',event); 
      client.broadcast(JSON.stringify({'UserName': '', 'Message': Response.UserID + ' is now connected'})); 
     } 
    }); 
    client.on('disconnect',function(){ 
     client.broadcast(JSON.stringify({ 'UserName': '', 'Message':client.sessionId + ' left the conversation'})); 
    }); 

}); 

該代碼工作正常,它會顯示SessionID的當用戶斷開連接。以下是我想雖然

socket.on('connection', function(client){ 
    // Success! Now listen to messages to be received 
    client.on('message',function(event){ 
     var Response = JSON.parse(event); 
     if(Response.UserID == null){ 
      client.broadcast(event); 
      console.log('Received message from client!',event); 
     } 
     else{ 
      console.log('Received message from client!',event); 
       client.sessionId = Response.UserID; 
      client.broadcast(JSON.stringify({'UserName': '', 'Message': Response.UserID + ' is now connected'})); 
     } 
    }); 
    client.on('disconnect',function(){ 
     client.broadcast(JSON.stringify({ 'UserName': '', 'Message':client.sessionId + ' left the conversation'})); 
    }); 

}); 

所有我回來是NaN

回答

1

在這裏需要多一點的上下文。如果Response.UserID實際上是NaN,那麼if語句的第一個條件是返回false並且永遠不會執行。

什麼是作爲event傳遞給消息的JSON?如果UserID實際上是一個數字,這將會回答。

+0

實際上由於一些奇怪的原因,完全相同的代碼工作。不確定交易是什麼。但現在它的工作。我只是不能回答我自己的問題,因爲我是一個noob – DvideBy0

+0

很酷,很高興它的工作! – goatslacker