[英]How to emit undefined/null value to client with socket.io?
我最近發現socket.io解析器似乎從發出的數據對象中刪除了帶有未定義/空值的鍵。 這是不可取的,因為我試圖使用這些值來清除我觀點中的信息。
有沒有人知道解決這個問題? API 允許您提供自己的解析器,但我不想走這條路或更改默認解析器( socket.io-parser )。
我還沒有看到這種特定的行為。 一個快速的解決方法可能是始終發送一個布爾參數isUndefined
或isNull
並在另一端檢查它。
在JSON.stringify()
(我懷疑 socket.io 正在使用)上觀察到相同的行為,並且undefined
也不是有效的 JSON 令牌。
在發送之前,您可以將 undefined 替換為您想要的任何內容。 作為空值或一些自定義字符串,並在另一端進行必要的檢查
const dataToEmit = { something: undefined };
const replaceWith = null;
const s = JSON.stringify(dataToEmit, (k, v) => v === undefined? replaceWith : v );
const dataParsed = JSON.parse(s)
socket.emit("channel_name", dataParsed);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.