簡體   English   中英

如何使用 socket.io 向客戶端發出未定義/空值?

[英]How to emit undefined/null value to client with socket.io?

我最近發現socket.io解析器似乎從發出的數據對象中刪除了帶有未定義/空值的鍵。 這是不可取的,因為我試圖使用這些值來清除我觀點中的信息。

有沒有人知道解決這個問題? API 允許您提供自己的解析器,但我不想走這條路或更改默認解析器( socket.io-parser )。

我還沒有看到這種特定的行為。 一個快速的解決方法可能是始終發送一個布爾參數isUndefinedisNull並在另一端檢查它。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM