2015-10-13 42 views
0

我通過websocket發送JSON,但是一些創建的消息是空的。WebSocket JSON javascript/jquery

function chVol(vol){ 
var send = {}; 
send["payload"] = {}; 
send["payload"]["volume"] = vol; 
ws.send(JSON.stringify(send)); 
} 

如果vol的值爲0或1,則消息是正確的,並且在某些其他vol值也是。我改變了體積與一個滑塊,當我登錄JSON.stringify(發送)的所有消息都是正確的,但不能當

ws.onmessage = function (e) { 
      data = JSON.parse(e.data); 
      console.log(data); 
}; 

被調用。有什麼想法發生在這裏?

+0

目前還不清楚你在問什麼。 'onmessage'用於傳入消息,它不會記錄使用'.send()'發送的傳出消息。這是混亂嗎? – ydaniv

回答

2

你不能做到這一點:

var send = {}; 
send["payload"]["volume"] = vol; 

這將導致一個例外,因爲您試圖訪問undefined財產'volume'

您需要先初始化send['payload']到一個空對象:

var send = {} 
send['payload'] = {} 
send['payload']['volume'] = vol 
+1

或者你可以將定義放在單個對象聲明中:'var send = {payload:{volume:vol}};'+1無論如何修復問題。 –

+0

我沒有複製整個代碼,因爲我提交了更多的參數。 send [「payload」] = {};在之前的代碼... –

+0

@JohannesGi然後請更新您的問題,幷包括實際工作的代碼。包含一個最小**完整**示例非常重要,否則我們無法幫助您。 – meagar