使用Socket.io遇到錯誤RangeError: Maximum call stack size exceeded
RangeError: Maximum call stack size exceeded
錯誤原因
傳輸資料不要傳輸socket物件(JSON),socket是一個包含迴圈結構的JSON,會引起buffer.js的爆棧錯誤!
起因
我在伺服器對client emit事件傳輸資料的時候出現了這個錯誤,這個錯誤有一個非常糟糕的關鍵詞,最大棧呼叫(爆棧),這個關鍵詞嚴重阻礙了我在Google上尋找答案,後來我單步除錯,找到了出錯的原因,爆棧只是表象原因,根本原因在於buffer.js對傳送資料的處理
原因
其實原因很簡單,就是emit傳送的JSON資料中包含一個迴圈的結構(circular structure)。 什麼是迴圈的結構呢? 下面的A就包含一個迴圈的結構,使用JSON.stringify(A)的話會得到錯誤,表示無法把一個迴圈結構的JSON轉成字串
為什麼傳輸資料的迴圈結構會導致最大棧呼叫錯誤呢? 因為在buffer.js 為了得到傳輸資料(JSON)的內容、長度,它會遞迴遍歷你傳輸的資料,很顯然它沒有對迴圈結構的JSON做很好的處理,所以直接導致了爆棧錯誤; 反觀JSON.stringify()函式,遇到迴圈JSON會直接明瞭地報告迴圈結構錯誤,不會讓人產生誤會!
相關推薦
使用Socket.io遇到錯誤RangeError: Maximum call stack size exceeded
RangeError: Maximum call stack size exceeded錯誤原因起因原因 錯誤原因 傳輸資料不要傳輸socket物件(JSON),socket是一個包含迴圈結構的JSON,會引起buffer.js的爆棧錯誤! 起因 我在伺服器對c
vue輪播圖報錯 Uncaught RangeError: Maximum call stack size exceeded 附完整輪播圖實現程式碼
Vue初學者,寫專案實現輪播圖時報錯且頁面初始化後不會自動輪播。 設定的計時器時長是6000,但報錯是幾乎沒有停歇的報錯。 檢查核心程式碼,發現 錯誤一:這裡導致輪播圖初始化不輪播 mounted的方法寫在了methods裡面,將mounted的方法挪出,解決頁面初始化輪播圖不
vue-router報錯:RangeError: Maximum call stack size exceeded
今天在執行本地專案的時候,vue-router報錯:RangeError: Maximum call stack size exceeded,當時發現自己在run dev的時候,命令列裡面是沒有任何問題的,在進入介面的時候,也不跳轉,後面去看了自己配置的路由,找到解決方法 首先,我的正常路由配
Uncaught RangeError: Maximum call stack size exceeded 除錯日記
開發道路上不是解決問題最重要,而是解決問題的過程,這個過程我們稱之為~~~除錯 記一次填坑記,下次一定注意休息。。。各種低階錯誤。。。 1.錯誤資訊:Uncaught RangeError: Maximum call stack size exceeded 我沒用遞迴啊?也沒有引入衝突的js庫啊?什
踩坑 Uncaught RangeError: Maximum call stack size exceeded
maximum 請求 溢出 ack info 定義 UNC 簡單 password 今天遇到了一個錯誤, 堆棧溢出,很好奇就是一個簡單ajax請求怎麽會報這個錯誤,研究了一下,發現犯了一個很低級的錯誤,data的參數錯誤了; passWord是未定義的變量,
Uncaught RangeError: Maximum call stack size exceeded 超出最大調用值
ack alt img cee 出現 技術 exce 解決 mage “Uncaught RangeError: Maximum call stack size exceeded”。當運行js時出現這個報錯,但你又查不到原因的時候,不要慌。 真
npm install時 報錯Maximum call stack size exceeded
num log ring off npm gpo all 降級 4.0 給npm降級或者升級 降級 : npm install -g [email protected] 升級 : npm install -g npm 升級到最新版npm install時 報錯Maximum call s
Laravel Npm install 報錯 Maximum call stack size exceeded的原因及解決辦法
很多同學在執行npm install,尤其是執行npm install --no-bin-links的時候,經常會遇到這麼一個報錯: npm ERR! Linux 3.13.0-24-generic npm ERR! argv “/usr/local/bin/node” “/usr/lo
npm報錯:npm ERR! Maximum call stack size exceeded npm ERR! A complete log of this run can be found in
在npm下載包的時候出現一個錯誤: npm ERR! Maximum call stack size exceeded npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\安寧的小獅獅\
遇到 npm ERR! Maximum call stack size exceeded
看這個文章: http://blog.csdn.net/m0_37986789/article/details/78121456?locationNum=7&fps=1 但是好像沒有解決自己的問題。過一會兒還會報出來。 因為我的程式在安裝時報錯太多了。好多東西沒有安
使用 socket.io + nginx 時,出現 400 錯誤,無法通信
nginx TP 配置文件 pro ket 解決方法 pre sock 通信 解決方法 將下面的代碼配置到 nginx 的配置文件中 location / { proxy_pass http://127.0.0.1:8888; proxy_http_vers
用express和socket.io做聊天室遇到的連結錯誤坑/socket.io/?EIO=
遇到的報錯資訊 http://127.0.0.1:3000/socket.io/?EIO=3&transport=polling&t=ME7dXNi 0 ()***.cn/test被nginx轉發到8100埠socket = io.connect('http:
GO語言 --socket.io
broadcast logfile hub println ogg sta out his ror socket.io是對websocket的封裝以及擴展, 可以跨平臺使用, 具體可看官網.. GO語言實現: package main import (
使用 Socket.IO 開發聊天室
對象 ima -1 hello 前言 text 而後 一定的 發布 前言 Socket.IO 是一個用來實現實時雙向通信的框架,其本質是基於 WebSocket 技術。 我們首先來聊聊 WebSocket 技術,先設想這麽一個場景: · 用戶小A,打開了某個網站的充值界面
socket.io不為人知的功能
socket實現 通訊 exit logs chan oom style 關聯 adapter socket.io 是一個基於websocket實現的前後端實時通訊框架,也對低版本瀏覽器做了封裝。使用起來簡單,方便。 初次使用起來可能會比較迷糊,其實主要常用就幾個方法,簡
用socket.io實現websocket的一個簡單例子
soc .html www sock 在線 ket log html 簡單例子 http://biyeah.iteye.com/blog/1295196 socket.io的介紹 http://www.cnblogs.com/mazg/p/5467960.html
基於網絡聊天室的社交遊戲 -- vue、socket.io-client
社交遊戲 網絡聊天 tar style nodes -c eba html target 系列博文的傳送門:http://www.cnblogs.com/lastpairs/p/6993237.html 客戶端代碼github地址 https://github.com/xx
基於網絡聊天室的社交遊戲 -- nodejs、express、socket.io-server
ref https dom 後端 log allow 系列 max command 系列博文的傳送門:http://www.cnblogs.com/lastpairs/p/6993237.html 客戶端代碼github地址 https://github.com/xxyjs
socket-io廣播
class log emit use conn con sock connect spa 發送給其他人 socket.broadcast.emit(‘userConnection‘, {user: socket.id}); 發送給所有人 io.emit(‘userCon
socket.io分布式
bar forward all list clip cal web tom ip_hash socket.io是目前較為流行的web實時推送框架,其基於nodejs語言開發,底層用engine.io實現。 借助nodejs語言異步的特性,其獲得了不錯的性能。但單個實例的so